Tutoriel : Créer et gérer des machines virtuelles Linux avec l’interface Azure CLI

Attention

Cet article fait référence à CentOS, une distribution Linux proche de l’état EOL (End Of Life). Faites le point sur votre utilisation et organisez-vous en conséquence. Pour plus d’informations, consultez les conseils d’aide relatifs à la fin de vie de CentOS.

S’applique à : ✔️ Machines virtuelles Linux ✔️ Groupes identiques flexibles

Les machines virtuelles fournissent un environnement informatique entièrement configurable et flexible. Ce didacticiel traite d’aspects de base du déploiement de machines virtuelles Azure, tels que la sélection d’une taille de machine virtuelle, la sélection d’une image de machine virtuelle et le déploiement d’une machine virtuelle. Vous allez apprendre à effectuer les actions suivantes :

  • Créer une machine virtuelle et vous y connecter
  • Sélectionner et utiliser des images de machine virtuelle
  • Afficher et utiliser des tailles de machine virtuelle spécifiques
  • Redimensionner une machine virtuelle
  • Consulter et comprendre l’état d’une machine virtuelle

Ce tutoriel utilise l’interface CLI disponible dans Azure Cloud Shell, qui est constamment mise à jour vers la dernière version.

Si vous choisissez d’installer et d’utiliser l’interface de ligne de commande localement, ce didacticiel nécessite que vous exécutiez Azure CLI version 2.0.30 ou ultérieure. Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.

Créer un groupe de ressources

Créez un groupe de ressources avec la commande az group create.

Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées. Un groupe de ressources doit être créé avant les machines virtuelles. Dans cet exemple, un groupe de ressources nommé myResourceGroupVM est créé dans la région eastus2.

az group create --name myResourceGroupVM --location eastus2

Le groupe de ressources est spécifié lors de la création ou de la modification d’une machine virtuelle, qui peut être vue dans ce didacticiel.

Créer une machine virtuelle

Créez une machine virtuelle avec la commande az vm create.

Lorsque vous créez une machine virtuelle, plusieurs options sont disponibles, comme l’image de système d’exploitation, le dimensionnement des disques et les informations d’identification d’administration. L’exemple suivant crée une machine virtuelle nommée myVM qui exécute SUSE Linux Enterprise Server (SLES). Un compte d’utilisateur nommé azureuser est créé sur la machine virtuelle, et les clés SSH sont générées si elles n’existent pas dans l’emplacement de la clé par défaut ( ~/.ssh) :

az vm create \
    --resource-group myResourceGroupVM \
    --name myVM \
    --image SuseSles15SP3 \
    --public-ip-sku Standard \
    --admin-username azureuser \
    --generate-ssh-keys

La création de la machine virtuelle peut prendre plusieurs minutes. Une fois la machine virtuelle créée, l’interface Azure CLI fournit des informations concernant cette machine virtuelle. Notez la valeur de publicIpAddress, car cette adresse peut être utilisée pour accéder à la machine virtuelle.

{
  "fqdns": "",
  "id": "/subscriptions/d5b9d4b7-6fc1-0000-0000-000000000000/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "eastus2",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "52.174.34.95",
  "resourceGroup": "myResourceGroupVM"
}

Se connecter à une machine virtuelle

Vous pouvez maintenant vous connecter à la machine virtuelle avec SSH dans Azure Cloud Shell ou à partir de votre ordinateur local. Remplacez l’exemple d’adresse IP par la valeur de publicIpAddress notée à l’étape précédente.

ssh azureuser@52.174.34.95

Une fois connecté à la machine virtuelle, vous pouvez installer et configurer des applications. Quand vous avez terminé, vous fermez la session SSH normalement :

exit

Comprendre les images de machine virtuelle

La Place de marché Azure comprend de nombreuses images qui permettent de créer des machines virtuelles. Dans les étapes précédentes, une machine virtuelle a été créée à l’aide d’une image Ubuntu. Dans cette étape, vous allez utiliser l’interface Azure CLI pour rechercher dans la Place de marché une image CentOS, qui servira ensuite à déployer une deuxième machine virtuelle.

Pour afficher une liste des images les plus couramment utilisées, utilisez la commande az vm image list.

az vm image list --output table

La commande renvoie les images de machine virtuelle les plus populaires sur Azure.

Architecture    Offer                         Publisher               Sku                                 Urn                                                                             UrnAlias                 Version
--------------  ----------------------------  ----------------------  ----------------------------------  ------------------------------------------------------------------------------  -----------------------  ---------
x64             CentOS                        OpenLogic               7.5                                 OpenLogic:CentOS:7.5:latest                                                     CentOS                   latest
x64             debian-10                     Debian                  10                                  Debian:debian-10:10:latest                                                      Debian                   latest
x64             flatcar-container-linux-free  kinvolk                 stable                              kinvolk:flatcar-container-linux-free:stable:latest                              Flatcar                  latest
x64             opensuse-leap-15-3            SUSE                    gen2                                SUSE:opensuse-leap-15-3:gen2:latest                                             openSUSE-Leap            latest
x64             RHEL                          RedHat                  7-LVM                               RedHat:RHEL:7-LVM:latest                                                        RHEL                     latest
x64             sles-15-sp3                   SUSE                    gen2                                SUSE:sles-15-sp3:gen2:latest                                                    SLES                     latest
x64             UbuntuServer                  Canonical               18.04-LTS                           Canonical:UbuntuServer:18.04-LTS:latest                                         UbuntuLTS                latest
x64             WindowsServer                 MicrosoftWindowsServer  2022-Datacenter                     MicrosoftWindowsServer:WindowsServer:2022-Datacenter:latest                     Win2022Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2022-datacenter-azure-edition-core  MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition-core:latest  Win2022AzureEditionCore  latest
x64             WindowsServer                 MicrosoftWindowsServer  2019-Datacenter                     MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest                     Win2019Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2016-Datacenter                     MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest                     Win2016Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2012-R2-Datacenter                  MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest                  Win2012R2Datacenter      latest
x64             WindowsServer                 MicrosoftWindowsServer  2012-Datacenter                     MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest                     Win2012Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2008-R2-SP1                         MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest                         Win2008R2SP1             latest

Vous pouvez obtenir une liste complète en ajoutant le paramètre --all. Vous pouvez également utiliser --publisher ou –-offer pour filtrer la liste d’images. Dans cet exemple, la liste est filtrée pour toutes les images, publiée par OpenLogic, dont l’offre correspond à CentOS.

az vm image list --offer CentOS --publisher OpenLogic --all --output table

Exemple de sortie partielle :

Architecture    Offer                      Publisher    Sku              Urn                                                       Version
--------------  -------------------------  -----------  ---------------  --------------------------------------------------------  ---------------
x64             CentOS                     OpenLogic    8_2              OpenLogic:CentOS:8_2:8.2.2020111800                       8.2.2020111800
x64             CentOS                     OpenLogic    8_2-gen2         OpenLogic:CentOS:8_2-gen2:8.2.2020062401                  8.2.2020062401
x64             CentOS                     OpenLogic    8_2-gen2         OpenLogic:CentOS:8_2-gen2:8.2.2020100601                  8.2.2020100601
x64             CentOS                     OpenLogic    8_2-gen2         OpenLogic:CentOS:8_2-gen2:8.2.2020111801                  8.2.2020111801
x64             CentOS                     OpenLogic    8_3              OpenLogic:CentOS:8_3:8.3.2020120900                       8.3.2020120900
x64             CentOS                     OpenLogic    8_3              OpenLogic:CentOS:8_3:8.3.2021020400                       8.3.2021020400
x64             CentOS                     OpenLogic    8_3-gen2         OpenLogic:CentOS:8_3-gen2:8.3.2020120901                  8.3.2020120901
x64             CentOS                     OpenLogic    8_3-gen2         OpenLogic:CentOS:8_3-gen2:8.3.2021020401                  8.3.2021020401
x64             CentOS                     OpenLogic    8_4              OpenLogic:CentOS:8_4:8.4.2021071900                       8.4.2021071900
x64             CentOS                     OpenLogic    8_4-gen2         OpenLogic:CentOS:8_4-gen2:8.4.2021071901                  8.4.2021071901
x64             CentOS                     OpenLogic    8_5              OpenLogic:CentOS:8_5:8.5.2022012100                       8.5.2022012100
x64             CentOS                     OpenLogic    8_5              OpenLogic:CentOS:8_5:8.5.2022101800                       8.5.2022101800
x64             CentOS                     OpenLogic    8_5-gen2         OpenLogic:CentOS:8_5-gen2:8.5.2022012101                  8.5.2022012101

Notes

Canonical a modifié les noms d’offres qu’ils utilisent pour les versions les plus récentes. Avant Ubuntu 20.04, le nom de l’offre est UbuntuServer. Pour Ubuntu 20.04, le nom de l’offre est 0001-com-ubuntu-server-focal et pour Ubuntu 22.04, il s’agit de 0001-com-ubuntu-server-jammy.

Pour déployer une machine virtuelle à l’aide d’une image spécifique, prenez note de la valeur dans la colonne Urn, qui se compose de l’éditeur, de l’offre, de la référence SKU et éventuellement du numéro de version pour identifier l’image. Lorsque vous spécifiez l’image, le numéro de version de l’image peut être remplacé par la valeur latest, qui sélectionne la dernière version de la distribution. Dans cet exemple, le paramètre --image est utilisé pour spécifier la version la plus récente de CentOS 8.5.

az vm create --resource-group myResourceGroupVM --name myVM2 --image OpenLogic:CentOS:8_5:latest --generate-ssh-keys

Comprendre les tailles de machine virtuelle

Une taille de machine virtuelle détermine la quantité de ressources de calcul comme le processeur, le processeur graphique (GPU) et la mémoire qui sont mises à la disposition de la machine virtuelle. Les machines virtuelles doivent être correctement dimensionnés en fonction de la charge de travail attendue. Si la charge de travail augmente, une machine virtuelle existante peut être redimensionnée.

Tailles de machine virtuelle

Le tableau suivant classe les tailles en fonction des cas d’utilisation.

Type Description
Usage général Ratio processeur/mémoire équilibré. Idéale pour le développement/test et pour les petites et moyennes applications et solutions de données.
Optimisé pour le calcul Ratio processeur/mémoire élevé. Convient pour les applications au trafic moyen, les appliances réseau et les processus de traitement par lots.
Mémoire optimisée Ratio mémoire/cœur élevé. Idéale pour les bases de données relationnelles, les caches moyens à grands et l’analytique en mémoire.
Optimisé pour le stockage Débit de disque et E/S élevés. Idéale pour les bases de données NoSQL, SQL et Big Data.
GPU Machines virtuelles spécialisées conçues pour les opérations graphiques lourdes et la retouche vidéo.
Hautes performances Nos machines virtuelles dotées des processeurs les plus puissants avec interfaces réseau haut débit en option (RDMA).

Rechercher les tailles de machines virtuelles disponibles

Pour afficher la liste des tailles de machines virtuelles disponibles dans une région particulière, utilisez la commande az vm list-sizes.

az vm list-sizes --location eastus2 --output table

Exemple de sortie partielle :

  MaxDataDiskCount    MemoryInMb  Name                      NumberOfCores    OsDiskSizeInMb    ResourceDiskSizeInMb
------------------  ------------  ----------------------  ---------------  ----------------  ----------------------
4                   8192          Standard_D2ds_v4           2                1047552           76800
8                   16384         Standard_D4ds_v4           4                1047552           153600
16                  32768         Standard_D8ds_v4           8                1047552           307200
32                  65536         Standard_D16ds_v4          16               1047552           614400
32                  131072        Standard_D32ds_v4          32               1047552           1228800
32                  196608        Standard_D48ds_v4          48               1047552           1843200
32                  262144        Standard_D64ds_v4          64               1047552           2457600
4                   8192          Standard_D2ds_v5           2                1047552           76800
8                   16384         Standard_D4ds_v5           4                1047552           153600
16                  32768         Standard_D8ds_v5           8                1047552           307200
32                  65536         Standard_D16ds_v5          16               1047552           614400
32                  131072        Standard_D32ds_v5          32               1047552           1228800
32                  196608        Standard_D48ds_v5          48               1047552           1843200
32                  262144        Standard_D64ds_v5          64               1047552           2457600
32                  393216        Standard_D96ds_v5          96               1047552           3686400

Créer une machine virtuelle d’une taille spécifique

Dans le précédent exemple de création d’une machine virtuelle, aucune taille n’a été spécifiée ; la taille par défaut a donc été appliquée. Vous pouvez sélectionner une taille de machine virtuelle au moment de la création à l’aide de la commande az vm create et du paramètre --size.

az vm create \
    --resource-group myResourceGroupVM \
    --name myVM3 \
    --image SuseSles15SP3 \
    --size Standard_D2ds_v4  \
    --generate-ssh-keys

Redimensionner une machine virtuelle

Après avoir déployé une machine virtuelle, vous pouvez la redimensionner pour augmenter ou diminuer l’allocation des ressources. Vous pouvez afficher la taille actuelle d’une machine virtuelle avec la commande az vm show :

az vm show --resource-group myResourceGroupVM --name myVM --query hardwareProfile.vmSize

Avant de redimensionner une machine virtuelle, vérifiez si la taille souhaitée est disponible dans le cluster Azure actuel. La commande az vm list-vm-resize-options commande renvoie la liste des tailles disponibles.

az vm list-vm-resize-options --resource-group myResourceGroupVM --name myVM --query [].name

Si la taille souhaitée est disponible, la machine virtuelle peut être redimensionnée à partir d’un état sous tension, mais elle est redémarrée au cours de l’opération. Utilisez la commande az vm resize commande pour effectuer le redimensionnement.

az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_D4s_v3

Si la taille souhaitée ne figure pas dans le cluster actuel, la machine virtuelle doit être libérée avant de procéder au redimensionnement. Utilisez la commande az vm deallocate pour arrêter la machine virtuelle et la libérer. Notez que lorsque la machine virtuelle est remise sous tension, toutes les données contenues dans le disque temporaire peuvent être supprimées. L’adresse IP publique change également, sauf si une adresse IP statique est utilisée.

az vm deallocate --resource-group myResourceGroupVM --name myVM

Après la libération, le redimensionnement peut être effectué.

az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_GS1

Après le redimensionnement, la machine virtuelle peut être démarrée.

az vm start --resource-group myResourceGroupVM --name myVM

États d’alimentation de la machine virtuelle

Une machine virtuelle Azure peut présenter différents états d’alimentation. Cet état représente l’état actuel de la machine virtuelle du point de vue de l’hyperviseur.

États d’alimentation

État d’alimentation Description
Démarrage en cours Indique que la machine virtuelle est en cours de démarrage.
Exécution en cours Indique que la machine virtuelle est en cours d’exécution.
En cours d’arrêt Indique que la machine virtuelle est en cours d’arrêt.
Arrêté Indique que la machine virtuelle est arrêtée. Les machines virtuelles à l’état arrêté entraînent toujours des frais de calcul.
Libération Indique que la machine virtuelle est en cours de libération.
Libéré Indique que la machine virtuelle est supprimée de l’hyperviseur, mais reste disponible dans le plan de contrôle. Les machines virtuelles à l’état Libéré n’entraînent pas de frais de calcul.
- Indique que l’état d’alimentation de la machine virtuelle est inconnu.

Rechercher l’état d’alimentation

Pour récupérer l’état d’une machine virtuelle spécifique, utilisez la commande az vm get instance-view. Veillez à spécifier le nom valide d’une machine virtuelle et d’un groupe de ressources.

az vm get-instance-view \
    --name myVM \
    --resource-group myResourceGroupVM \
    --query instanceView.statuses[1] --output table

Sortie :

Code                Level    DisplayStatus
------------------  -------  ---------------
PowerState/running  Info     VM running

Pour récupérer l’état d’alimentation de toutes les machines virtuelles de votre abonnement, utilisez l’API Machines virtuelles - Répertorier tout avec le paramètre statusOnly défini sur true.

Tâches de gestion

Pendant le cycle de vie d’une machine virtuelle, vous souhaiterez exécuter des tâches de gestion telles que le démarrage, l’arrêt ou la suppression d’une machine virtuelle. En outre, vous souhaiterez peut-être créer des scripts pour automatiser les tâches répétitives ou complexes. À l’aide de l’interface Azure CLI, de nombreuses tâches courantes de gestion peuvent être exécutées à partir de la ligne de commande ou dans des scripts.

Obtenir l’adresse IP

Cette commande renvoie les adresses IP publiques et privées d’une machine virtuelle.

az vm list-ip-addresses --resource-group myResourceGroupVM --name myVM --output table

Arrêt d’une machine virtuelle

az vm stop --resource-group myResourceGroupVM --name myVM

Démarrage d’une machine virtuelle

az vm start --resource-group myResourceGroupVM --name myVM

Suppression des ressources de machine virtuelle

En fonction de la façon dont vous supprimez une machine virtuelle, cela peut supprimer uniquement la ressource de machine virtuelle, et pas les ressources réseau et de disque. Vous pouvez modifier le comportement par défaut pour supprimer d’autres ressources lorsque vous supprimez la machine virtuelle. Pour plus d’informations, consultez Supprimer une machine virtuelle et les ressources associées.

La suppression d’un groupe de ressources supprime également toutes les ressources dans le groupe de ressources, telles que la machine virtuelle, le réseau virtuel et le disque. Le paramètre --no-wait retourne le contrôle à l’invite de commandes sans attendre que l’opération se termine. Le paramètre --yes confirme que vous souhaitez supprimer les ressources sans passer par une invite supplémentaire à cette fin.

az group delete --name myResourceGroupVM --no-wait --yes

Étapes suivantes

Ce didacticiel vous a montré les tâches de base de création et de gestion de machines virtuelles, notamment :

  • Créer une machine virtuelle et vous y connecter
  • Sélectionner et utiliser des images de machine virtuelle
  • Afficher et utiliser des tailles de machine virtuelle spécifiques
  • Redimensionner une machine virtuelle
  • Consulter et comprendre l’état d’une machine virtuelle

Passez au didacticiel suivant pour en savoir plus sur les disques de machine virtuelle.