Créer des ressources Azure avec Azure PowerShell à l’aide d’un script

Effectué

Les tâches complexes ou répétitives peuvent être fastidieuses et susceptibles d’engendrer des erreurs lorsqu’elles sont effectuées manuellement. Les organisations préfèrent automatiser ces tâches pour réduire les coûts et éviter les erreurs.

L’automatisation est essentielle dans l’exemple CRM (Customer Relationship Management), dans lequel vous testez votre logiciel sur plusieurs machines virtuelles Linux qui doivent être supprimées et recréées en continu. L’utilisation d’un script PowerShell pour automatiser la création de machines virtuelles est beaucoup plus efficace et fiable que la création manuelle à chaque fois.

Au-delà de l’opération principale de création d’une machine virtuelle, votre script doit répondre à quelques autres exigences :

  • Créez plusieurs machines virtuelles : Permet New-AzVM de créer plusieurs machines virtuelles nommées de manière unique.
  • Paramètre de groupe de ressources : Permet au script d’accepter le nom du groupe de ressources comme paramètre.

Dans cette unité, vous allez apprendre à écrire et à exécuter un script PowerShell qui répond à ces exigences.

Qu’est-ce qu’un script PowerShell ?

Un script PowerShell est un fichier texte contenant des commandes et des constructions de contrôle. Les commandes sont des appels de cmdlets et les constructions de contrôle sont des fonctions de programmation comme les boucles, les variables, les paramètres, les commentaires, etc. fournies par PowerShell.

Les fichiers de script PowerShell ont une extension de fichier .ps1. Vous pouvez créer et enregistrer ces fichiers à l’aide de tout éditeur de texte.

Conseil

Si vous écrivez des scripts PowerShell, envisagez d’utiliser Visual Studio Code (VS Code), qui est gratuit et pris en charge sur Windows, Linux et macOS. L’extension PowerShell pour VS Code offre des fonctionnalités comme la mise en surbrillance de la syntaxe et une liste de cmdlets disponibles.

La capture d’écran suivante est un exemple de VS Code avec un échantillon de script pour se connecter à Azure et créer une machine virtuelle :

Capture d’écran de VS Code avec un script PowerShell pour créer une machine virtuelle dans Azure.

Une fois que vous avez créé un script, vous pouvez l’exécuter à partir de la ligne de commande PowerShell en passant le nom du fichier précédé d’un point pour le répertoire actif et d’une barre oblique inverse :

.\myScript.ps1

Techniques de PowerShell

PowerShell inclut des fonctionnalités couramment trouvées dans les langages de programmation. Vous pouvez définir des variables, utiliser des branches et des boucles, capturer des paramètres de ligne de commande, écrire des fonctions, ajouter des commentaires, et bien plus. Pour le script sur lequel vous vous concentrez, vous avez besoin de trois fonctionnalités clés à savoir, les variables, les boucles et les paramètres.

Variables

Dans PowerShell, les variables sont déclarées à l’aide du signe dollar ($) et des valeurs attribuées à l’aide de l’opérateur égal à (=). Par exemple :

$location = 'eastus'

Pour déterminer la valeur stockée dans une variable, utilisez le $ préfixe et son nom :

$location

Les variables peuvent contenir des objets. Par exemple, la définition suivante définit la $adminCredential variable sur l’objet retourné par le Get-Credential cmdlet :

$adminCredential = Get-Credential

Boucles

PowerShell dispose de plusieurs structures de boucle, notamment For, Foreach, Do-Until, Do-While et While. La Foreach boucle est un bon choix pour les scénarios où vous devez exécuter une boucle sur un ensemble de valeurs dans une collection.

$items = 'web','app','sql'
foreach ($item in $items) {
    $item
}

Paramètres

Lorsque vous créez un script PowerShell, vous pouvez ajouter des paramètres au script, puis spécifier des valeurs pour ces paramètres lors de l’exécution du script. Par exemple :

.\setupEnvironment.ps1 -Name 'web','app','sql' -Location eastus

Dans le script, vous capturez les valeurs dans des variables. Dans cet exemple, les paramètres sont Name et Location :

param (
    [string[]]$Name,
    [string]$Location
)

Vous pouvez utiliser ces paramètres comme entrée et une boucle pour créer un ensemble de machines virtuelles en fonction des paramètres donnés. Cette approche conserve le script générique et permet d’éviter la répétition du même code.

Combinaison de techniques

La combinaison des fonctionnalités de langage PowerShell et des cmdlets Azure PowerShell fournit tous les outils dont vous avez besoin pour automatiser les tâches Azure. Dans l’exemple CRM, vous pouvez créer plusieurs machines virtuelles Linux à l’aide d’un script paramétré et d’une boucle pour simplifier le processus. Ce script vous permet d’effectuer une opération complexe en une seule étape.

Exemple de script

Voici un exemple de script qui illustre l’utilisation de variables, de boucles et de paramètres pour créer plusieurs machines virtuelles :

param (
    [string[]]$Name = 'web','app','sql',
    [string]$ResourceGroupName,
    [string]$Location = 'eastus'
)

$adminCredential = Get-Credential

foreach ($vm in $Name) {
    $azVmParams = @{
        ResourceGroupName   = $ResourceGroupName
        Name                = $vm
        Credential          = $adminCredential
        Location            = $Location
        Image               = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts           = 22
        PublicIpAddressName = $vm
    }
    New-AzVM @azVmParams
}

Exécution du script

Enregistrez le script comme CreateVMs.ps1 et exécutez-le à partir de la ligne de commande PowerShell, en fournissant les paramètres requis :

.\CreateVMs.ps1 -ResourceGroupName <resource-group-name>

À l’aide de ce script, vous pouvez créer efficacement plusieurs machines virtuelles dans différents groupes de ressources, automatiser les tâches répétitives et garantir la cohérence dans votre environnement Azure.