Exercice : créer une ressource Azure de manière interactive avec Azure PowerShell

Effectué

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.

Créer une machine virtuelle Linux avec Azure PowerShell

É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, [nom de groupe de ressources de bac à sable]. Tenez compte des restrictions d’emplacement.

Voici comment créer une machine virtuelle Azure avec Azure PowerShell :

  1. Utilisez la cmdlet New-AzVM pour créer la machine virtuelle.

    • Spécifiez le groupe de ressources de bac à sable : [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 Ubuntu Linux : Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest.

    • Utilisez la cmdlet Get-Credential pour définir les informations d’identification de l’administrateur de machine virtuelle.

    • Ajoutez le paramètre OpenPorts avec le port 22 pour l’accès SSH.

    • Créez un nom d’adresse IP publique pour la connexion SSH.

    $azVmParams = @{
        ResourceGroupName   = '<rgn>[sandbox resource group name]</rgn>'
        Name                = 'testvm-eus-01'
        Credential          = (Get-Credential)
        Location            = 'eastus'
        Image               = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts           = 22
        PublicIpAddressName = 'testvm-eus-01'
    }
    New-AzVm @azVmParams
    

    Conseil

    Vous pouvez utiliser le bouton Copier pour copier des commandes dans le Presse-papiers. Pour coller, 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).

  2. Entrez les informations d’identification :

    Lorsque vous y êtes invité, entrez un nom d’utilisateur et un mot de passe, en suivant les instructions : les mots de passe doivent comporter entre 12 et 123 caractères et répondre à trois des quatre exigences de complexité suivantes : caractères minuscules, caractères majuscules, chiffres et caractères spéciaux (correspondance regex [\W_]). Pour plus d’informations, consultez FAQ sur les machines virtuelles Linux.

  3. Patientez jusqu’à la création de la machine virtuelle :

    Le processus de création de la machine virtuelle prend quelques minutes.

  4. Interrogez la machine virtuelle :

    Une fois l’opération terminée, interrogez la machine virtuelle et attribuez l’objet de machine virtuelle à une variable ($vm).

    $vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    
  5. Affichez des informations concernant la machine virtuelle :

    Pour afficher des informations concernant la machine virtuelle, affichez le contenu de la variable.

    $vm
    

    Exemple de sortie :

    ResourceGroupName : <rgn>[sandbox resource group name]</rgn>
    Id                : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rgn>[sandbox resource group name]</rgn>/providers/Microsoft.Compute/virtualMachines/testvm-eus-01
    VmId              : 00000000-0000-0000-0000-000000000000
    Name              : testvm-eus-01
    Type              : Microsoft.Compute/virtualMachines
    Location          : eastus
    Tags              : {}
    HardwareProfile   : {VmSize}
    NetworkProfile    : {NetworkInterfaces}
    OSProfile         : {ComputerName, AdminUsername, LinuxConfiguration, Secrets}
    ProvisioningState : Succeeded
    StorageProfile    : {ImageReference, OsDisk, DataDisks}
    ...
    
  6. Inspectez les propriétés de machine virtuelle :

    Vous pouvez inspecter des objets complexes via l’opérateur d’accès aux membres (.). Par exemple, pour afficher les propriétés de l’objet VMSize associé à la section HardwareProfile, exécutez la commande suivante :

    $vm.HardwareProfile
    

    Ou, pour obtenir des informations sur l’un des disques, exécutez la commande suivante :

    $vm.StorageProfile.OsDisk
    
  7. Obtenez les tailles de machine virtuelle disponibles :

    Transmettez l’objet de machine virtuelle à d’autres cmdlets pour obtenir des tailles disponibles :

    $vm | Get-AzVMSize
    
  8. Obtenez l’adresse IP publique :

    Récupérez l’adresse IP publique pour vous connecter à la machine virtuelle et stockez-la dans une variable.

    $ip = Get-AzPublicIpAddress -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name testvm-eus-01
    
  9. Connectez-vous à la machine virtuelle :

    Connectez-vous à la machine virtuelle avec SSH à l’aide de l’adresse IP de la variable. Par exemple, si le nom d’utilisateur est bob, utilisez la commande suivante :

    ssh bob@$($ip.IpAddress)
    

    Déconnectez-vous en tapant quitter.

Supprimer une machine virtuelle

Pour essayer d’autres commandes, supprimons la machine virtuelle. Effectuez les étapes suivantes :

  1. Arrêtez la machine virtuelle :

    Exécutez la commande suivante :

    Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
    

    Entrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.

  2. Supprimez la machine virtuelle :

    Une fois la machine virtuelle arrêtée, supprimez-la en exécutant la cmdlet Remove-AzVM.

    Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
    

    Entrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.

  3. Répertoriez toutes les ressources du groupe de ressources :

    Utilisez la cmdlet Get-AzResource pour répertorier toutes les ressources du groupe de ressources. Les résultats sont canalisés vers Select-Object pour retourner des propriétés spécifiques :

    Get-AzResource -ResourceGroupName $vm.ResourceGroupName | 
        Select-Object -Property Name, ResourceType, ResourceGroupName
    

    Vous devriez voir plusieurs ressources, notamment des disques, des réseaux virtuels, etc., qui existent toujours :

    Name                    ResourceType                            ResourceGroupName
    ----                    ------------                            -----------------
    cloudshell              Microsoft.Storage/storageAccounts       <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/virtualNetworks       <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/publicIPAddresses     <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/networkSecurityGroups <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/networkInterfaces     <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01_OsDisk_1  Microsoft.Compute/disks                 <rgn>[sandbox resource group name]</rgn>
    

    La commande Remove-AzVM supprime uniquement la machine virtuelle. Elle ne nettoie pas les autres ressources. Pour les nettoyer manuellement, procédez comme suit :

  4. Supprimez l’interface réseau :

    Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name |
        Remove-AzNetworkInterface
    

    Entrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.

  5. Supprimez le groupe de sécurité réseau :

    Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzNetworkSecurityGroup
    

    Entrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.

  6. Supprimez l’adresse IP publique :

    Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzPublicIpAddress
    

    Entrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.

  7. Supprimez le réseau virtuel :

    Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzVirtualNetwork
    

    Entrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.

  8. Supprimez les disques de système d’exploitation managés :

    Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name |
        Remove-AzDisk
    

    Entrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.

  9. Vérifiez que toutes les ressources ont été supprimées :

    Vérifiez le groupe de ressources pour vous assurer que toutes les ressources sont supprimées :

    Get-AzResource -ResourceGroupName $vm.ResourceGroupName | 
        Select-Object -Property Name, ResourceType, ResourceGroupName
    

Bien que vous ayez exécuté ces commandes de manière interactive, une meilleure approche consiste à écrire un script PowerShell. Les scripts vous permettent de réutiliser la logique de création ou de suppression d’une machine virtuelle à l’avenir

Examinons ensuite comment automatiser ces tâches à l’aide d’un script PowerShell.