Exercice : créer des ressources Azure avec Azure PowerShell à l’aide d’un script
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. La création manuelle des machines virtuelles après une longue journée est sujette aux erreurs. Vous devez donc écrire un script PowerShell pour automatiser le processus de création de machine virtuelle.
É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 Connect-AzAccount
, mais dans Cloud Shell, vous êtes déjà authentifié. Cette étape n’est donc pas nécessaire.
Basculez vers votre dossier de base :
Set-Location -Path $HOME
Créez un nouveau fichier de script PowerShell :
New-Item -Name ConferenceDailyReset.ps1 -ItemType File
Ouvrez l’éditeur Visual Studio Code intégré (VS Code) :
code ./ConferenceDailyReset.ps1
Conseil
L’éditeur Cloud Shell intégré prend aussi en charge vim, nano et emacs si vous préférez utiliser l’un de ces éditeurs.
Définissez un paramètre pour le nom de votre groupe de ressources :
Ajoutez la ligne suivante à votre script :
param ( [string]$ResourceGroupName )
Demandez les informations d’identification de l’administrateur de machine virtuelle :
$adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
Créez une boucle pour exécuter trois fois :
$vms = 'web','app','sql' foreach ($vm in $vms) { $vm }
Dans la boucle, retournez le nom pour chaque machine virtuelle :
Write-Output "Creating VM: $vm"
Créez une machine virtuelle en utilisant la variable
$vm
:$azVmParams = @{ ResourceGroupName = $ResourceGroupName Name = $vm Credential = $adminCredential Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest' OpenPorts = 22 } New-AzVm @azVmParams
Enregistrez le fichier :
Pour enregistrer le script, utilisez le menu contextuel avec les points de suspension (
...
) en haut à droite de l’éditeur ou le raccourci clavier Ctrl + S.
Script complet
Le script complet doit ressembler à l’exemple suivant :
param (
[string]$ResourceGroupName
)
$adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
$vms = 'web','app','sql'
foreach ($vm in $vms) {
Write-Output "Creating VM: $vm"
$azVmParams = @{
ResourceGroupName = $ResourceGroupName
Name = $vm
Credential = $adminCredential
Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
OpenPorts = 22
}
New-AzVm @azVmParams
}
Une fois que vous avez confirmé que votre script ressemble au code de l’exemple précédent, fermez l’éditeur à l’aide du menu contextuel avec les points de suspension (...
) en haut à droite de l’éditeur, ou le raccourci clavier Ctrl +
Q.
Exécuter le script
Exécutez le script avec la commande suivante :
./ConferenceDailyReset.ps1 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Attend la fin du travail. L’exécution du script prend quelques minutes.
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 :
Get-AzVM -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Vous devez y trouver trois machines virtuelles, chacune avec un nom unique.
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.