Exercice : créer une ressource Azure de manière interactive avec Azure PowerShell
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.
Note
Cet exercice est facultatif. Si vous souhaitez effectuer cet exercice, vous devez créer un abonnement Azure avant de commencer. Si vous n’avez pas de compte Azure ou si vous ne souhaitez pas en créer un à ce stade, vous pouvez lire les instructions pour comprendre les informations qui sont présentées.
Note
Vous devez utiliser un groupe de ressources pour effectuer les étapes de cet exercice. Vous pouvez utiliser un groupe de ressources que vous avez déjà créé, ou vous pouvez créer un groupe de ressources spécifiquement pour cet exercice. Si vous choisissez de créer un groupe de ressources, cela facilite le nettoyage des ressources que vous créez lorsque vous effectuez l’exercice. Si vous n’avez pas de groupe de ressources existant ou si vous souhaitez en créer un spécifiquement pour cet exercice, vous pouvez suivre les étapes décrites dans Utiliser le portail Azure et Azure Resource Manager pour gérer les groupes de ressources pour créer un groupe de ressources à l’aide du portail Azure, ou vous pouvez suivre les étapes décrites dans Gérer les groupes de ressources Azure à l’aide d’Azure CLI pour créer un groupe de ressources à l’aide de l’interface Azure CLI.
Créer une machine virtuelle Linux avec Azure PowerShell
Voici comment créer une machine virtuelle Azure avec Azure PowerShell :
Utilisez la cmdlet
New-AzVMpour créer la machine virtuelle.- Spécifiez le groupe de ressources de votre machine virtuelle.
- 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 régions Azure disponibles.
- Utilisez l’image Ubuntu Linux :
Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest. - Utilisez la cmdlet
Get-Credentialpour définir les informations d’identification de l’administrateur de machine virtuelle. - Ajoutez le paramètre OpenPorts avec le port
22pour l’accès SSH. - Créez un nom d’adresse IP publique pour la connexion SSH.
$azVmParams = @{ ResourceGroupName = 'myResourceGroupName' 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 @azVmParamsRemplacez myResourceGroupName dans l’exemple précédent par le nom d’un groupe de ressources existant ou le nom du groupe de ressources que vous avez créé pour cet exercice.
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).
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.
Patientez jusqu’à la création de la machine virtuelle :
Le processus de création de la machine virtuelle prend quelques minutes.
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 myResourceGroupNameAffichez des informations concernant la machine virtuelle :
Pour afficher des informations concernant la machine virtuelle, affichez le contenu de la variable.
$vmExemple de sortie :
ResourceGroupName : myResourceGroupName Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroupName/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} ...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’objetVMSizeassocié à la section HardwareProfile, exécutez la commande suivante :$vm.HardwareProfilePour obtenir des informations sur l’un des disques, exécutez la commande suivante :
$vm.StorageProfile.OsDiskObtenez les tailles de machine virtuelle disponibles :
Transmettez l’objet de machine virtuelle à d’autres cmdlets pour obtenir des tailles disponibles :
$vm | Get-AzVMSizeObtenez 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 myResourceGroupName -Name testvm-eus-01Connectez-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 :
Arrêtez la machine virtuelle :
Exécutez la commande suivante :
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupNameEntrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.
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.ResourceGroupNameEntrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.
Répertoriez toutes les ressources du groupe de ressources :
Utilisez la cmdlet
Get-AzResourcepour répertorier toutes les ressources du groupe de ressources. Les résultats sont canalisés versSelect-Objectpour retourner des propriétés spécifiques :Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupNameVous devriez voir plusieurs ressources, notamment des disques, des réseaux virtuels, etc., qui existent toujours :
Name ResourceType ResourceGroupName ---- ------------ ----------------- cloudshell Microsoft.Storage/storageAccounts myResourceGroupName testvm-eus-01 Microsoft.Network/virtualNetworks myResourceGroupName testvm-eus-01 Microsoft.Network/publicIPAddresses myResourceGroupName testvm-eus-01 Microsoft.Network/networkSecurityGroups myResourceGroupName testvm-eus-01 Microsoft.Network/networkInterfaces myResourceGroupName testvm-eus-01_OsDisk_1 Microsoft.Compute/disks myResourceGroupNameLa commande
Remove-AzVMsupprime uniquement la machine virtuelle. Elle ne nettoie aucune autre ressource. Pour les nettoyer manuellement, procédez comme suit :Supprimez l’interface réseau :
Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name | Remove-AzNetworkInterfaceEntrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.
Supprimez le groupe de sécurité réseau :
Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName | Remove-AzNetworkSecurityGroupEntrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.
Supprimez l’adresse IP publique :
Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName | Remove-AzPublicIpAddressEntrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.
Supprimez le réseau virtuel :
Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName | Remove-AzVirtualNetworkEntrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.
Supprimez les disques de système d’exploitation managés :
Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name | Remove-AzDiskEntrez Y, puis appuyez sur Entrée lorsque vous êtes invité à continuer.
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.