Exercice : créer une ressource Azure de manière interactive avec Azure CLI

Effectué

Dans le scénario d’origine, vous devez créer des machines virtuelles pour tester votre logiciel de Gestion des relations client (CRM). Quand une nouvelle build est disponible, vous devez créer rapidement une machine virtuelle afin de pouvoir tester l’expérience d’installation complète à partir d’une image propre. Une fois le test terminé, vous pouvez supprimer la machine virtuelle.

Essayons les commandes pour créer une machine virtuelle.

Exercice : créer une machine virtuelle Linux avec Azure CLI

Étant donné que vous utilisez le bac à sable Azure, vous n’avez pas besoin de créer un groupe de ressources. Au lieu de cela, utilisez le groupe de ressources de bac à sable existant, [nom de groupe de ressources de bac à sable]. Tenez compte des restrictions d’emplacement.

Voici comment créer une machine virtuelle Azure avec Azure CLI :

  1. Utilisez la commande az vm create pour créer la machine virtuelle.

    • Utilisez la commande az group list pour obtenir le nom du groupe de ressources de bac à sable.

    • Nommez la machine virtuelle en suivant les normes d’affectation de noms de votre organisation.

    • Choisissez un emplacement proche de vous dans la liste des emplacements de bac à sable Azure disponibles :

      • westus2
      • southcentralus
      • centralus
      • eastus
      • westeurope
      • southeastasia
      • japaneast
      • brazilsouth
      • australiasoutheast
      • centralindia
    • Utilisez l’image Linux : Ubuntu2204.

    • Attribuez un nom d’utilisateur administrateur suivant les normes d’affectation de noms de votre organisation.

    #!/bin/bash
    
    # Get the single resource group name created by the sandbox.
    rgName=$(az group list --query "[].{Name:name}" --output tsv)
    echo $rgName
    
    # Create additional variables with values of your choice.
    vmName="msdocs-vm-01"
    vmLocation="westus"
    vmImage="Ubuntu2204"
    vmAdminUserName="myAzureUserName"
    
    # Create the VM
    az vm create \
      --resource-group $rgName \
      --name $vmName \
      --location $vmLocation \
      --image $vmImage \
      --public-ip-sku Standard \
      --admin-username $vmAdminUserName \
      --generate-ssh-keys
    

    Conseil

    Avez-vous simplement utilisé le bouton Copier et notez que tous les caractères de continuation de ligne ont été supprimés ? Ce comportement est normal. Étant donné qu’Azure CLI peut être exécuté dans de nombreux environnements avec des caractères de continuation de ligne différents, le bouton copier les supprime. Si vous préférez copier un script mis en forme, utilisez votre souris pour sélectionner et copier le contenu du bloc de code.

    Pour coller dans Azure Cloud Shell, 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).

    Si votre script n’a pas été correctement copié et que le terminal de bac à sable attend une entrée d’ajout, utilisez CTRL + Z pour revenir à une invite et réessayez.

  2. Attendez la création de la machine virtuelle Linux :

    Le processus de création de la machine virtuelle prend quelques minutes.

  3. Obtenir des informations sur la machine virtuelle

    Une fois terminé, Azure CLI retourne des informations sur la machine virtuelle au format JSON. Utilisez les commandes az vm list et az vm show pour obtenir des informations spécifiques sur la machine virtuelle. Voici quelques exemples :

    Plusieurs de ces scripts utilisent des noms de variables et des valeurs stockés dans les étapes précédentes.

    Obtenez la liste de toutes les machines virtuelles au format de tableau.

    az vm list --output table
    

    Obtenez des informations sur une seule machine virtuelle au format JSON.

    Certaines de ces sorties s’affichent après la création d’une machine virtuelle. Toutefois, il est utile de retourner plus d’informations lorsque vous recherchez des noms de propriétés imbriquées à référencer dans un script. Les noms de propriété respectent la casse.

    az vm show --resource-group $rgName --name $vmName
    

    Obtenez des informations sur les propriétés de machine virtuelle.

    # Get the time the VM was created
    az vm show --resource-group $rgName --name $vmName --query "timeCreated"
    
    # Get the OS disk storage account type
    az vm show --resource-group $rgName --name $vmName --query "storageProfile.osDisk.managedDisk.storageAccountType"
    

    Stockez une propriété d’une machine virtuelle dans une variable.

    Azure CLI propose plusieurs types de sortie. JSON est la valeur par défaut, mais lors du stockage de valeurs dans des variables, supprimez la mise en forme supplémentaire avec --output tsv.

    #!/bin/bash
    # Store the VM id
    vmID=$(az vm show --resource-group $rgName --name $vmName --query id --output tsv)
    echo $vmID
    
    # Store the public IP address
    publicIP=$(az vm list-ip-addresses \
        --resource-group $rgName \
        --name $vmName \
        --query "[].virtualMachine.network.publicIpAddresses[0].ipAddress" --output tsv)
    echo $publicIP
    
  4. Connectez-vous à la machine virtuelle.**

    #!/bin/bash
    az ssh vm --private-key-file \path\to\private\key \
        --resource-group $rgName \
        --name $vmName \
        --local-user $vmAdminUserName
    

    Déconnectez-vous en tapant quitter.

En savoir plus sur les options de machine virtuelle

Lorsque vous utilisez des ressources Azure sur la ligne de commande, vous n’utilisez pas le Portail Azure, ce qui vous donne souvent une liste de choix d’options de propriété. Par exemple, une liste d’emplacements disponibles et de tailles de machine virtuelle. Azure CLI dispose de plusieurs commandes dans la plupart de ses groupes de commandes qui fournissent ces informations. Voici quelques exemples pour les machines virtuelles :

Conseil

Le format Azure CLI --output table ne retourne pas 100 % des informations disponibles, mais il rend souvent les résultats de commande volumineux plus faciles à lire. Utilisez le paramètre --query pour spécifier les informations qui vous intéressent le plus.

  1. Obtenir les tailles de machine virtuelle disponibles pour un emplacement :

    az vm list-sizes --location westus --output table
    
  2. Obtenir les références SKU disponibles pour un emplacement :

    Selon le --location que vous sélectionnez, Azure CLI peut prendre une ou deux minutes avant de retourner une liste complète des références SKU.

    # virtual machines
    az vm list-skus --location westus --resource-type virtualMachines --output table
    
    # disks
    az vm list-skus --location westus --resource-type disks --output table
    
  3. Obtenir les options de redimensionnement disponibles pour une machine virtuelle existante :

    az vm list-vm-resize-options --resource-group $rgName --name $vmName --output table
    
  4. Affichez les détails de toutes les machines virtuelles d’un groupe de ressources.**

    Si vous avez choisi de travailler dans votre environnement local et que vous disposez de plusieurs machines virtuelles dans votre abonnement, interrogez les machines virtuelles qui répondent à un critère de filtre.

    #!/bin/bash
    # details of all VMs in a specified resource group
    az vm show --show-details --ids $(az vm list --resource-group $rgName --query "[].id" -o tsv)
    
    # list of all VMs created in the last 7 days
    createDate=$(date +%F -d "-7days")
    az vm list --resource-group $rgName \
            --query "[?timeCreated >='$createDate'].{Name:name, admin:osProfile.adminUsername, DiskSize:storageProfile.osDisk.diskSizeGb}" \
            --output table
    
    # list all VMs whose disks are of a certain type
    # first get a list of the disk types or organization is using
    az vm list --resource-group $rgName --query "[].{Name:name, osDiskSize:storageProfile.osDisk.diskSizeGb, managedDiskTypes:storageProfile.osDisk.managedDisk.storageAccountType}" --output table
    
    diskType="Premium_LRS"
    az vm list --resource-group $rgName \
            --query "[?storageProfile.osDisk.managedDisk.storageAccountType =='$diskType'].{Name:name, admin:osProfile.adminUsername, osDiskSize:storageProfile.osDisk.diskSizeGb, CreatedOn:timeCreated, vmID:id}" \
            --output table
    

Arrêter ou supprimer une machine virtuelle

  1. Arrêtez la machine virtuelle :

    Vous pouvez éteindre (arrêter) une machine virtuelle en cours d’exécution, bien que la machine virtuelle continue d’être facturée.

    az vm stop --resource-group $rgName --name $vmName
    

    Entrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.

  2. Libérer une machine virtuelle :

    Pour éviter d’être facturé pour une machine virtuelle arrêtée, vous pouvez la libérer. Libérer des machines virtuelles contient des ressources qui ne sont plus allouées (les frais ne s’appliquent plus). L’état de la machine virtuelle passe de Arrêtée à Arrêtée (libérée).

    az vm deallocate --resource-group $rgName --name $vmName
    
  3. Supprimer une machine virtuelle :

    Une fois la machine virtuelle arrêtée, supprimez-la en exécutant la commande az vm delete.

    az vm delete --resource-group $rgName --name $vmName
    

    Entrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.

Bien que vous ayez exécuté ces commandes de manière interactive, une meilleure approche consiste à écrire un script Azure CLI. Les scripts vous permettent de réutiliser la logique de création ou de suppression d’une machine virtuelle à l’avenir.

Dans l’unité suivante, nous allons automatiser ces tâches à l’aide d’un script Azure CLI.