Exercice : Créer et enregistrer des scripts dans Azure PowerShell

Effectué

Dans cette unité, vous allez continuer avec l’exemple d’une entreprise qui crée des outils d’administration Linux. Rappelez-vous que vous prévoyez d’utiliser des machines virtuelles Linux pour permettre aux clients potentiels de tester vos logiciels. Votre groupe de ressources est prêt et il est temps de créer les machines virtuelles.

Votre entreprise a réservé un stand dans un salon important consacré à Linux. Vous prévoyez une zone de démonstration contenant trois terminaux, chacun connecté à une machine virtuelle Linux distincte. À la fin de chaque journée, vous souhaitez supprimer les machines virtuelles et les recréer, afin qu’elles soient réinitialisées pour le lendemain matin. Créer les VM manuellement après le travail, lorsque vous êtes fatigué, constituerait une source d’erreurs potentielle. Vous voulez donc écrire un script PowerShell pour automatiser le processus de création de machine virtuelle.

Écrire un script pour créer des machines virtuelles

Procédez comme suit dans Cloud Shell sur la droite pour écrire le script :

  1. Accédez à votre dossier de base dans Cloud Shell.

    cd $HOME\clouddrive
    
  2. Créez un fichier texte nommé ConferenceDailyReset.ps1.

    touch "./ConferenceDailyReset.ps1"
    
  3. Ouvrez l’éditeur intégré, puis sélectionnez le fichier ConferenceDailyReset.ps1.

    code "./ConferenceDailyReset.ps1"
    

    Conseil

    L’environnement Cloud Shell intégré prend aussi en charge vim, nano et emacs si vous préférez utiliser l’un de ces éditeurs.

  4. Commencez par capturer le paramètre d’entrée dans une variable. Ajoutez la ligne suivante à votre script.

    param([string]$resourceGroup)
    

    Notes

    Normalement, vous devriez vous authentifier auprès d’Azure avec vos informations d’identification en utilisant Connect-AzAccount, ce qui peut se faire dans le script. Or, puisque vous êtes déjà authentifié dans l’environnement Cloud Shell, cela n’est pas nécessaire.

  5. Demandez le nom d’utilisateur et le mot de passe du compte administrateur de la machine virtuelle et capturez le résultat dans une variable :

    $adminCredential = Get-Credential -Message "Enter a username and password for the VM administrator."
    
  6. Créez une boucle qui s’exécute trois fois :

    For ($i = 1; $i -le 3; $i++) 
    {
    
    }
    
  7. Dans le corps de la boucle, créez un nom pour chaque machine virtuelle, stockez-le dans une variable, puis sortez-le dans la console :

    $vmName = "ConferenceDemo" + $i
    Write-Host "Creating VM: " $vmName
    
  8. Ensuite, créez une machine virtuelle en utilisant la variable $vmName :

    New-AzVm -ResourceGroupName $resourceGroup -Name $vmName -Credential $adminCredential -Image Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest
    
  9. Enregistrez le fichier. Vous pouvez utiliser le menu « ... » situé dans l’angle supérieur droit de l’éditeur. Il existe également des raccourcis clavier courants pour Enregistrer, par exemple Ctrl + S.

Le script complet doit ressembler au code suivant :

param([string]$resourceGroup)

$adminCredential = Get-Credential -Message "Enter a username and password for the VM administrator."

For ($i = 1; $i -le 3; $i++)
{
    $vmName = "ConferenceDemo" + $i
    Write-Host "Creating VM: " $vmName
    New-AzVm -ResourceGroupName $resourceGroup -Name $vmName -Credential $adminCredential -Image Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest
}

Exécuter le script

  1. Enregistrez le fichier, puis fermez l’éditeur à l’aide du menu contextuel représenté par « ... » en haut à droite de l’éditeur (ou utilisez Ctrl + Q).

  2. Exécutez le script.

    ./ConferenceDailyReset.ps1 <rgn>[sandbox resource group name]</rgn>
    

    Cette opération peut prendre plusieurs minutes. À la fin de l’opération, vérifiez que le script s’est correctement exécuté en examinant les ressources qui figurent maintenant dans votre groupe de ressources :

    Get-AzResource -ResourceType Microsoft.Compute/virtualMachines
    

Vous y trouverez trois machines virtuelles, chacune avec un nom unique.

Vous avez écrit un script qui a automatisé la création de trois machines virtuelles dans le groupe de ressources indiqué par un paramètre de script. Le script est court et simple, mais il automatise un processus qui prend davantage de temps s’il est effectué manuellement via le portail Azure.