Exercice : Ajouter un disque de données à une machine virtuelle

Terminé

Votre cabinet d’avocats développe sa charge d’affaires, et vous devez créer un serveur web Linux pour stocker des documents critiques de diverses sources : clients, autres cabinets d’avocats et bureaux d’autorité judiciaire. Le serveur web vous permet de charger des documents et de les stocker sur disque.

Conseil

Cet exercice utilise Linux comme exemple, mais le processus de base de création de machines virtuelles et d’ajout de disques est le même pour Windows. La principale différence est dans le partitionnement et le formatage du disque. Sur Windows, vous pouvez vous connecter à votre machine virtuelle par le biais du Bureau à distance, puis utiliser les outils intégrés de gestion des disques ou déployer un script PowerShell similaire au script Bash que vous utiliserez ici.

Votre objectif consiste à créer une machine virtuelle Linux et à attacher un nouveau disque dur virtuel (VHD) nommé uploadDataDisk1 sur lequel stocker le répertoire /uploads.

Notes

Cet exercice est facultatif. Si vous souhaitez effectuer cet exercice, vous devez créer un abonnement Azure avant de commencer. Si vous n’avez pas de compte Azure ou si vous ne souhaitez pas en créer un à ce stade, vous pouvez lire les instructions pour comprendre les informations qui sont présentées.

Notes

Vous devez utiliser un groupe de ressources pour effectuer les étapes de cet exercice. Vous pouvez utiliser un groupe de ressources que vous avez déjà créé, ou vous pouvez créer un groupe de ressources spécifiquement pour cet exercice. Si vous choisissez de créer un groupe de ressources, cela facilite le nettoyage des ressources que vous créez lorsque vous effectuez l’exercice. Si vous n’avez pas de groupe de ressources existant ou si vous souhaitez en créer un spécifiquement pour cet exercice, vous pouvez suivre les étapes décrites dans Utiliser le portail Azure et Azure Resource Manager pour gérer les groupes de ressources pour créer un groupe de ressources à l’aide du portail Azure, ou vous pouvez suivre les étapes décrites dans Gérer les groupes de ressources Azure à l’aide d’Azure CLI pour créer un groupe de ressources à l’aide de l’interface Azure CLI.

Notes

Dans cette unité, vous utilisez Azure Cloud Shell comme terminal. Vous pouvez accéder à Cloud Shell via le portail Azure ou la connexion Cloud Shell. Vous n’avez pas besoin d’installer quoi que ce soit sur votre PC ou ordinateur portable pour l’utiliser.

Définir les valeurs par défaut d’Azure CLI

Azure CLI vous laisse définir des valeurs par défaut pour ne pas avoir à en définir chaque fois que vous exécutez une commande.

Vous pouvez spécifier la localisation, ou région, Azure par défaut. Cette localisation est l’endroit où votre machine virtuelle Azure est placée.

Dans l’idéal, cette localisation doit être proche de vos clients. Dans ce cas, sélectionnez la région la plus proche à partir des emplacements disponibles dans Azure.

  1. Ouvrez Azure Cloud Shell.

  2. Exécutez az configure pour définir l’emplacement par défaut à utiliser. Remplacez eastus par la localisation choisie à l’étape précédente.

    az configure --defaults location=eastus
    

    Conseil

    Vous pouvez utiliser le bouton Copier pour copier des commandes dans le Presse-papiers. Pour coller, cliquez avec le bouton droit sur une nouvelle ligne dans le terminal Cloud Shell et sélectionnez Coller ou utilisez le raccourci clavier Maj+Inser (⌘+V sur macOS).

  3. Exécutez az configure pour définir le nom du groupe de ressources par défaut. Remplacez myResourceGroupName par le nom d’un groupe de ressources existant ou le nom du groupe de ressources que vous avez créé pour cet exercice.

    az configure --defaults group="myResourceGroupName"
    

Créer une machine virtuelle Linux

Ici, vous allez créer une machine virtuelle Linux pour héberger votre serveur web.

  1. Exécutez la commande az vm create pour créer votre machine virtuelle Ubuntu Linux.

    az vm create \
      --name support-web-vm01 \
      --image Canonical:UbuntuServer:16.04-LTS:latest \
      --size Standard_DS1_v2 \
      --admin-username azureuser \
      --generate-ssh-keys
    
    • Le nom de la machine virtuelle est support-web-vm01.
    • Sa taille est Standard_DS1_v2.
    • Le nom d’utilisateur administrateur est azureuser. Dans la pratique, vous pouvez choisir n’importe quel nom.
    • L’argument --generate-ssh-keys génère une paire de clés SSH qui vous permet de vous connecter à votre machine virtuelle via SSH.

    Le déploiement de la machine virtuelle ne nécessite que quelques minutes. Quand la machine virtuelle est prête, vous obtenez des informations sur cette machine au format JSON. Voici un exemple :

    {
      "fqdns": "",
      "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Compute/virtualMachines/support-web-vm01",
      "location": "eastus",
      "macAddress": "00-0D-3A-10-63-0A",
      "powerState": "VM running",
      "privateIpAddress": "10.0.0.4",
      "publicIpAddress": "104.211.38.211",
      "resourceGroup": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
      "zones": ""
    }
    

    Notes

    Dans cette leçon, vous utilisez cette machine virtuelle pour apprendre à gérer des disques. Dans la pratique, vous pouvez également installer un serveur web et d’autres logiciels, puis exécuter az vm open-port pour rendre les ports accessibles publiquement.

Ajouter un disque de données vide à votre machine virtuelle

Ici, vous allez créer un disque de données vide et l’attacher à votre machine virtuelle. Initialement, votre disque de données a une taille de 64 Go. Plus tard, vous allez monter ce disque sur le répertoire /uploads dans votre machine virtuelle.

Conseil

À des fins d’apprentissage, vous allez créer la machine virtuelle et le disque de données dans des étapes distinctes. Dans la pratique, vous pouvez spécifier l’argument --data-disk-sizes-gb dans la commande az vm create pour ajouter des disques de données lors de la création de la machine virtuelle.

  1. Exécutez la commande az vm disk attach suivante pour ajouter un disque vide à la machine virtuelle.

    az vm disk attach \
      --vm-name support-web-vm01 \
      --name uploadDataDisk1 \
      --size-gb 64 \
      --sku Premium_LRS \
      --new
    

    Cette commande :

    • Nomme le disque uploadDataDisk1.
    • Définit sa taille sur 64 Go.
    • Spécifie l’utilisation du stockage Premium avec redondance locale.

Pour utiliser ce disque, vous devez le partitionner et le formater. C’est ce que nous allons faire maintenant.

Initialiser et formater le disque de données

Votre lecteur de données vide doit être initialisé et formaté. Le processus est le même que pour un disque physique.

Pour les tâches uniques, vous pouvez vous connecter manuellement à votre machine virtuelle via SSH et exécuter les commandes dont vous avez besoin. Toutefois, afin de rendre le processus plus reproductible et moins sujet aux erreurs, vous pouvez spécifier vos commandes dans un script Bash ou un script PowerShell (si disponible).

L’utilisation d’un script pour automatiser le processus présente un avantage supplémentaire : votre script sert de documentation sur l’exécution du processus. Les autres utilisateurs peuvent lire votre script pour comprendre la configuration du système. Si vous devez changer le processus, il vous suffit de modifier votre script et de le tester sur une machine virtuelle de travail temporaire avant de déployer vos changements dans un environnement de production.

Pour automatiser le processus dans cette leçon, vous pouvez utiliser l’extension de script personnalisé. L’extension de script personnalisé est un moyen simple de télécharger et d’exécuter des scripts sur des machines virtuelles Azure. C’est l’une des nombreuses possibilités de configuration du système une fois que votre machine virtuelle est opérationnelle.

Vous pouvez stocker vos scripts dans le Stockage Azure ou dans un emplacement public comme GitHub. Vous pouvez exécuter les scripts manuellement ou dans le cadre d’un déploiement plus automatisé. Ici, vous exécutez une commande Azure CLI pour télécharger un script Bash prédéfini à partir de GitHub et l’exécuter sur votre machine virtuelle.

À des fins d’apprentissage, nous allons également exécuter quelques commandes sur votre machine virtuelle pour vérifier si celle-ci est configurée comme prévu.

  1. Exécutez az vm show pour obtenir l’adresse IP publique de votre machine virtuelle, puis enregistrez-la comme une variable Bash.

    ipaddress=$(az vm show \
      --name support-web-vm01 \
      --show-details \
      --query [publicIps] \
      --output tsv)
    
  2. Exécutez la commande ssh suivante pour exécuter la commande lsblk sur votre machine virtuelle via une connexion SSH à l’aide des données de la variable ipaddress que vous avez créée à l’étape précédente. Rappelez-vous que azureuser était le nom d’utilisateur administrateur que nous avons utilisé quand nous avons créé la machine virtuelle. Si vous avez choisi un autre nom, utilisez-le à la place. Entrez Oui quand vous y êtes invité.

    ssh azureuser@$ipaddress lsblk
    

    La sortie de cette commande doit se présenter comme suit.

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdb       8:16   0    7G  0 disk 
    └─sdb1    8:17   0    7G  0 part /mnt
    sr0      11:0    1  628K  0 rom  
    sdc       8:32   0   64G  0 disk 
    sda       8:0    0   30G  0 disk 
    ├─sda14   8:14   0    4M  0 part 
    ├─sda15   8:15   0  106M  0 part /boot/efi
    └─sda1    8:1    0 29.9G  0 part /
    

    Notez que le lecteur de 64 Go que vous avez créé (sdc) n’est pas monté. Le lecteur est répertorié de cette façon, car il n’est pas encore initialisé.

  3. Exécutez la commande az vm extension set suivante pour exécuter le script Bash prédéfini sur votre machine virtuelle.

    Avertissement

    Le script modifie /etc/fstab. Si vous ne modifiez pas correctement le fichier /etc/fstab, il se peut que le système ne puisse plus démarrer. Testez toujours les modifications apportées à la configuration sur un système de travail temporaire avant d’effectuer le déploiement dans un environnement de production. Pour savoir comment modifier correctement ce fichier, reportez-vous à la documentation de votre distribution. Dans un environnement de production, nous vous recommandons également de créer une sauvegarde de ce fichier pour que vous puissiez restaurer la configuration, si nécessaire.

    az vm extension set \
      --vm-name support-web-vm01 \
      --name customScript \
      --publisher Microsoft.Azure.Extensions \
      --settings '{"fileUris":["https://raw.githubusercontent.com/MicrosoftDocs/mslearn-add-and-size-disks-in-azure-virtual-machines/master/add-data-disk.sh"]}' \
      --protected-settings '{"commandToExecute": "./add-data-disk.sh"}'
    

    Pendant l’exécution de la commande, vous pouvez, si vous le souhaitez, examiner le script Bash dans un autre onglet du navigateur.

    Pour récapituler, le script :

    • Partitionne le lecteur /dev/sdc.
    • Crée un système de fichiers ext4 sur le lecteur.
    • Crée le répertoire /uploads, qui nous sert de point de montage.
    • Attache le disque au point de montage.
    • Met à jour /etc/fstab pour que le lecteur soit monté automatiquement après le redémarrage du système.
  4. Pour vérifier la configuration, exécutez la même commande ssh que précédemment pour exécuter la commande lsblk sur votre machine virtuelle via une connexion SSH.

    ssh azureuser@$ipaddress lsblk
    

    Vous devez constater que sdc/sdc1 est partitionné et monté dans le répertoire /uploads, comme prévu.

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdb       8:16   0    7G  0 disk 
    └─sdb1    8:17   0    7G  0 part /mnt
    sr0      11:0    1  628K  0 rom  
    sdc       8:32   0   64G  0 disk 
    └─sdc1    8:33   0   64G  0 part /uploads
    sda       8:0    0   30G  0 disk 
    ├─sda14   8:14   0    4M  0 part 
    ├─sda15   8:15   0  106M  0 part /boot/efi
    └─sda1    8:1    0 29.9G  0 part /
    

Conseil

Certains noyaux Linux prennent en charge TRIM pour ignorer les blocs inutilisés sur les disques. Cette fonctionnalité est disponible sur les disques Azure et peut être avantageuse si vous créez des fichiers volumineux et que vous les supprimez ensuite. Découvrez comment activer cette fonctionnalité dans la documentation Azure.

Résumé

Dans cet exercice, vous avez créé un disque de données et l’avez attaché à votre machine virtuelle. Vous avez utilisé l’extension de script personnalisé pour exécuter un script Bash prédéfini sur votre machine virtuelle afin de rendre le processus plus reproductible. Le script Bash partitionne, formate et monte votre disque pour que votre serveur web puisse y écrire des données.

Maintenant que le disque de données sur votre machine virtuelle est prêt, examinons un peu plus en détail les différents types de disques que vous pouvez créer. Votre principale décision consiste à choisir entre le stockage Standard et le stockage Premium.