Exercice : créer une ressource Azure de manière interactive avec Azure CLI
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,
Voici comment créer une machine virtuelle Azure avec Azure CLI :
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.
Attendez la création de la machine virtuelle Linux :
Le processus de création de la machine virtuelle prend quelques minutes.
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
etaz 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
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.
Obtenir les tailles de machine virtuelle disponibles pour un emplacement :
az vm list-sizes --location westus --output table
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
Obtenir les options de redimensionnement disponibles pour une machine virtuelle existante :
az vm list-vm-resize-options --resource-group $rgName --name $vmName --output table
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
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.
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
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.