Tutoriel : Créer et gérer un groupe de machines virtuelles identiques avec Azure CLI

Un groupe de machines virtuelles identiques vous permet de déployer et gérer un ensemble de machines virtuelles. Tout au long du cycle de vie d’un groupe de machines virtuelles identiques, vous serez peut-être amené à exécuter une ou plusieurs tâches de gestion. Ce didacticiel vous montre comment effectuer les opérations suivantes :

  • Créer un groupe de ressources
  • Crée un groupe de machines virtuelles identiques
  • Faire monter ou descendre en puissance
  • Arrêter, démarrer et redémarrer des instances VM

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Prérequis

Cet article nécessite la version 2.0.29 ou ultérieure d’Azure CLI. Si vous utilisez Azure Cloud Shell, la version la plus récente est déjà installée.

Créer un groupe de ressources

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 le groupe de machines virtuelles identiques. Créez un groupe de ressources avec la commande az group create. Dans cet exemple, un groupe de ressources nommé myResourceGroupVM est créé dans la région eastus.

az group create --name myResourceGroup --location eastus

Le nom du groupe de ressources est spécifié lorsque vous créez ou modifiez un groupe identique dans ce didacticiel.

Créer un groupe identique

Important

À compter de novembre 2023, les groupes de machines virtuelles identiques créés à l’aide de PowerShell et d’Azure CLI utilisent par défaut le mode d’orchestration flexible si aucun mode d’orchestration n’est spécifié. Pour plus d’informations sur ce changement et les actions que vous devez entreprendre, consultez l’article Changement cassant pour les clients VMSS PowerShell/CLI – Hub Communauté Microsoft

Vous créez un groupe de machines virtuelles identiques avec la commande az vmss create. L’exemple suivant crée un groupe identique nommé myScaleSet et génère des clés SSH si elles n’existent pas :

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --orchestration-mode flexible \
  --image <SKU image> \
  --admin-username azureuser \
  --generate-ssh-keys

La création et la configuration de l’ensemble des ressources et des instances de machine virtuelle du groupe identique prennent quelques minutes. Pour distribuer le trafic aux différentes instances de machine virtuelle, un équilibreur de charge est également créé.

Voir des informations sur les instances VM dans votre groupe identique

Pour voir la liste des instances VM dans un groupe identique, utilisez az vm list de la façon suivante :

az vm list --resource-group myResourceGroup --output table

L’exemple suivant montre deux instances de machine virtuelle dans le groupe identique :

Name                 ResourceGroup    Location    Zones
-------------------  ---------------  ----------  -------
myScaleSet_instance1  myResourceGroup  eastus
myScaleSet_instance2  myResourceGroup  eastus

Pour voir des informations supplémentaires sur une instance VM spécifique, utilisez az vm show et spécifiez le nom VM.

az vm show --resource-group myResourceGroup --name myScaleSet_instance1
{
  "hardwareProfile": {
    "vmSize": "Standard_DS1_v2",
  },
  "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_instance1",
  "location": "eastus",
  "name": "myScaleSet_instance1",
  "networkProfile": {
    "networkInterfaces": [
      {
        "deleteOption": "Delete",
        "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/mysca2215Nic-0396c71c",
        "primary": true,
        "resourceGroup": "myResourceGroup"
      }
    ]
  },
  "osProfile": {
    "adminUsername": "azureuser",
    "allowExtensionOperations": true,
    "computerName": "myScaleSN30BP1",
    "linuxConfiguration": {
      "disablePasswordAuthentication": true,
      "enableVmAgentPlatformUpdates": false,
      "patchSettings": {
        "assessmentMode": "ImageDefault",
        "patchMode": "ImageDefault"
      },
      "provisionVmAgent": true,
      "ssh": {
        "publicKeys": [
          {
            "keyData": "ssh-rsa",
            "path": "/home/azureuser/.ssh/authorized_keys"
          }
        ]
      }
    },
    "requireGuestProvisionSignal": true,
    "secrets": [],
  },
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "storageProfile": {
    "dataDisks": [],
    "imageReference": {
      "exactVersion": "XXXXX",
      "offer": "myOffer",
      "publisher": "myPublisher",
      "sku": "mySKU",
      "version": "latest"
    },
    "osDisk": {
      "caching": "ReadWrite",
      "createOption": "FromImage",
      "deleteOption": "Delete",
      "diskSizeGb": 30,
      "managedDisk": {
        "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myScaleSet_instance1_disk1",
        "resourceGroup": "myResourceGroup",
        "storageAccountType": "Premium_LRS"
      },
      "name": "myScaleSet_instance1_disk1",
      "osType": "Linux",
    }
  },
  "tags": {},
  "timeCreated": "2022-11-16T20:32:15.024581+00:00",
  "type": "Microsoft.Compute/virtualMachines",
  "virtualMachineScaleSet": {
    "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet",
    "resourceGroup": "myResourceGroup"
  },
}

Créer un groupe identique avec une taille d’instance de machine virtuelle spécifique

Lorsque vous avez créé un groupe identique au début de ce didacticiel, une valeur de référence SKU de la machine virtuelle par défaut Standard_D1_v2 a été fournie pour les instances de machine virtuelle. Vous pouvez spécifier une taille d’instance de machine virtuelle différente en fonction de la sortie de la commande az vm list-sizes. L’exemple suivant crée un groupe identique avec le paramètre --vm-sku afin de spécifier une taille d’instance de machine virtuelle Standard_F1. Comme la création et la configuration de toutes les ressources et les instances de machine virtuelle du groupe identique prennent quelques minutes, il est inutile de déployer le groupe identique suivant :

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --orchestration-mode flexible \
  --image <SKU image> \
  --vm-sku Standard_F1 \
  --admin-user azureuser \
  --generate-ssh-keys

Modifier la capacité d’un groupe identique

Lorsque vous avez créé un groupe identique au début de ce didacticiel, deux instances de machine virtuelle ont été déployées par défaut. Vous pouvez spécifier le paramètre --instance-count avec la commande az vmss create pour modifier le nombre d’instances créées avec un groupe identique. Pour augmenter ou diminuer le nombre d’instances de machine virtuelle dans votre groupe identique existant, vous pouvez modifier manuellement la capacité. Le groupe identique crée ou supprime le nombre requis d’instances de machine virtuelle, puis configure l’équilibreur de charge pour distribuer le trafic.

Pour augmenter ou diminuer manuellement le nombre d’instances de machine virtuelle dans le groupe identique, utilisez la commande az vmss scale. L’exemple suivant fixe le nombre d’instances de machine virtuelle présentes dans votre groupe identique à 3 :

az vmss scale \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --new-capacity 3

Quelques minutes sont nécessaires pour mettre à jour la capacité de votre groupe identique. Pour voir le nombre d’instances que vous avez maintenant dans le groupe identique, utilisez az vm list et interrogez le groupe de ressources associé.

az vm list --resource-group myResourceGroup --output table
Name                 ResourceGroup    Location    Zones
-------------------  ---------------  ----------  -------
myScaleSet_instance1  myResourceGroup  eastus
myScaleSet_instance2  myResourceGroup  eastus
myScaleSet_instance3  myResourceGroup  eastus

Arrêter et libérer des instances de machine virtuelle dans un groupe identique

Pour arrêter toutes les instances VM dans un groupe identique, utilisez az vmss stop.

az vmss stop \
  --resource-group myResourceGroup \
  --name myScaleSet

Pour arrêter des instances VM individuelles dans un groupe identique, utilisez az vm stop et spécifiez le nom de l’instance.

az vm stop \
  --resource-group myResourceGroup \
  --name myScaleSet_instance1

Les instances de machine virtuelle arrêtées restent allouées et continuent d’occasionner des frais de calcul. Si vous voulez à la place que les instances VM soient libérées et occasionnent seulement des frais de stockage, utilisez az vm deallocate et spécifiez les noms d’instances à libérer.

az vm deallocate \
  --resource-group myResourceGroup \
  --name myScaleSet_instance1

Démarrer les instances de machine virtuelle dans un groupe identique

Pour démarrer toutes les instances VM dans un groupe identique, utilisez az vmss start.

az vmss start \
  --resource-group myResourceGroup \
  --name myScaleSet

Pour démarrer des instances VM individuelles dans un groupe identique, utilisez az vm start et spécifiez le nom de l’instance.

az vm start \
  --resource-group myResourceGroup \
  --name myScaleSet_instance1

Redémarrer les instances de machine virtuelle dans un groupe identique

Pour redémarrer toutes les instances VM dans un groupe identique, utilisez az vmss restart.

az vmss restart \
  --resource-group myResourceGroup \
  --name myScaleSet

Pour redémarrer des instances VM individuelles dans un groupe identique, utilisez az vm restart et spécifiez le nom de l’instance.

az vm restart \
  --resource-group myResourceGroup \
  --name myScaleSet_instance1

Nettoyer les ressources

Lorsque vous supprimez un groupe de ressources, toutes les ressources qu’il contient, comme les instances de machine virtuelle, le réseau virtuel et les disques, sont également supprimées. 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 voulez supprimer les ressources sans passer par une autre invite.

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

Étapes suivantes

Dans ce tutoriel, vous avez appris à effectuer plusieurs tâches de création et de gestion de base concernant le groupe identique avec Azure CLI :

  • Créer un groupe de ressources
  • Créer un groupe identique
  • Afficher et utiliser des tailles de machine virtuelle spécifiques
  • Mettre un groupe identique à l’échelle manuellement
  • Effectuer des tâches courantes de gestion des groupes identiques, comme l’arrêt, le démarrage et le redémarrage de votre groupe identique

Passez au tutoriel suivant pour savoir comment vous connecter à vos instances de groupe identique.