Exercice – Créer des ressources à l’aide d’un script Azure CLI

Effectué

Dans cette unité, vous continuez avec l’exemple d’une société qui développe des outils d’administration Linux. L’objectif est d’utiliser des machines virtuelles Linux pour permettre aux clients potentiels de tester votre logiciel. Avec un groupe de ressources déjà configuré, il est temps de créer les machines virtuelles.

Votre entreprise a réservé un stand dans un salon commercial important consacré à Linux. Vous prévoyez de mettre en place une zone de démonstration avec trois terminaux, chacun connecté à une machine virtuelle Linux distincte. Vous devez supprimer les machines virtuelles et les recréer à la fin de chaque journée, afin qu’elles soient réinitialisées pour le lendemain matin. Après une longue journée, la création manuelle des machines virtuelles peut entraîner des erreurs. Il est donc nécessaire d’écrire un script Azure CLI pour automatiser le processus de création des machines virtuelles.

Écrire un script pour créer des machines virtuelles

Suivez ces étapes pour écrire un script dans Azure Cloud Shell qui automatise la création de machines virtuelles.

Remarque

En règle générale, vous vous authentifiez auprès d’Azure à l’aide de vos informations d’identification avec az login, mais dans Cloud Shell, vous êtes déjà authentifié. Cette étape n’est donc pas nécessaire.

  1. Ouvrez Azure Cloud Shell via le Portail Azure ou à l’aide du bouton Open Cloud Shell situé dans le coin supérieur droit de nombreux blocs de code Azure CLI.

  2. Définir votre abonnement Azure

    az account set --subscription "my subscription name or ID"
    
  3. Enregistrez le script suivant sur votre disque local à l’aide de l’éditeur de texte de votre choix. Dans cet exemple, le fichier est nommé msdocs-script-expanded.sh.

    #!/bin/bash
    
    # Assign parameters to variables
    vmCount=$1
    resourceGroupPrefix=$2
    location=$3
    vmNamePrefix=$4
    adminUserPrefix=$5
    shift 5
    images=("$@")
    
    # Loop 
    for i in $(seq 1 $vmCount)
    do
      let "randomIdentifier=$RANDOM*$RANDOM"
      resourceGroupName=$resourceGroupPrefix-$randomIdentifier
      location=westus
      adminUserName=$adminUserPrefix-$randomIdentifier
      vmName=$vmNamePrefix-$randomIdentifier
      vmImage=${images[$((i-1)) % ${#images[@]}]}
    
      echo "Creating VM $vmName on $vmImage with admin $adminUserName in resource group $resourceGroupName"
    
      # create the resource group
      az group create --name $resourceGroupName --location $location
    
      # create the VM
      az vm create \
          --resource-group $resourceGroupName \
          --location $location \
          --name $vmName \
          --generate-ssh-keys \
          --admin-username $adminUserName \
          --image $vmImage
    
    done
    
    
  4. Téléchargez le fichier sur votre disque Cloud Shell. La méthode la plus simple consiste à utiliser l’option de menu Gérer les fichiers .

Exécuter le script

  1. Exécutez le script avec la commande suivante :

    #!/bin/bash
    # make your file executable
    chmod +x msdocs-script-expanded.sh
    
    # remove Windows line continuation characters
    sed -i -e 's/\r$//' msdocs-script-expanded.sh
    
    # Run the script
    ./msdocs-script-expanded.sh 3 msdocs-rg eastus2 msdocsvm msdocsadmin Debian11 Debian11 Ubuntu2204  
    
  2. Attend la fin du travail. L’exécution du script prend quelques minutes.

  3. Vérifiez les machines virtuelles. Une fois le script terminé, vérifiez qu’il s’est terminé correctement en répertoriant les machines virtuelles dans le groupe de ressources :

    az vm list -o table
    

    Vous devriez voir trois machines virtuelles, chacune avec un nom unique et dans un groupe de ressources séparé.

Vous avez créé un script qui automatise la création de trois machines virtuelles, chacune dans un groupe de ressources spécifique, en vous assurant qu’elles sont prêtes pour des démonstrations quotidiennes au salon commercial. Bien que le script soit court et simple, il accélère considérablement un processus qui serait autrement fastidieux et sujet aux erreurs si effectué manuellement via le Portail Azure.