Créer des machines virtuelles avec Azure PowerShell
Dans ce tutoriel, vous allez découvrir toutes les étapes relatives à la configuration d’une machine virtuelle avec Azure PowerShell. Le didacticiel traite également des requêtes de sortie, de la réutilisation de ressources Azure et du nettoyage des ressources.
Vous pouvez réaliser ce tutoriel avec l’expérience interactive proposée par Azure Cloud Shell, ou installer l’interface Azure PowerShell localement.
Utilisez Ctrl-Maj-v (Cmd-Maj-v sur macOS) pour coller du texte didactique dans Azure Cloud Shell.
Se connecter
Si vous utilisez une installation locale d’Azure PowerShell, vous devez vous connecter avant d’effectuer toute autre étape.
Connect-AzAccount
Complétez le processus de connexion en suivant les étapes affichées dans votre terminal.
Créer un groupe de ressources
Dans Azure, toutes les ressources sont allouées dans un groupe de gestion des ressources. Les groupes de ressources proposent des regroupements logiques de ressources, ce qui facilite leur utilisation en tant que collection.
Pour ce didacticiel, toutes les ressources créées vont dans un seul groupe nommé TutorialResources
.
New-AzResourceGroup -Name TutorialResources -Location eastus
ResourceGroupName : TutorialResources
Location : eastus
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources
Créer des informations d’identification pour la machine virtuelle
Avant de pouvoir créer une nouvelle machine virtuelle, vous devez créer un objet d’informations d’identification contenant le nom d’utilisateur et un mot de passe pour le compte d’administrateur de la machine virtuelle Windows.
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
Lorsque vous y êtes invité, saisissez le nom d’utilisateur et le mot de passe. L’objet d’informations d’identification en résultant est transmis en tant que paramètre à l’étape suivante.
Windows PowerShell credential request.
Enter a username and password for the virtual machine.
User: tutorAdmin
Password for user tutorAdmin: *********
Création d'une machine virtuelle
Les machines virtuelles dans Azure ont un grand nombre de dépendances. Azure PowerShell crée ces ressources selon les arguments de ligne de commande que vous spécifiez. Pour une meilleure lisibilité, nous utilisons PowerShell Splatting pour transmettre les paramètres aux applets de commande Azure PowerShell.
Créez une nouvelle machine virtuelle exécutant Windows.
$vmParams = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM1'
Location = 'eastus'
ImageName = 'Win2016Datacenter'
PublicIpAddressName = 'tutorialPublicIp'
Credential = $cred
OpenPorts = 3389
Size = 'Standard_D2s_v3'
}
$newVM1 = New-AzVM @vmParams
Une fois la machine virtuelle créée, vous pouvez voir les valeurs de paramètre utilisées ainsi que les ressources Azure créées. PowerShell déplace une barre de progression comme indiqué ci-dessous.
Creating Azure resources
39% \
[ooooooooooooooooooooooooooooooooooo ]
Creating TutorialVM1 virtual machine.
Une fois que la machine virtuelle est prête, il est possible de consulter les résultats dans le Portail Azure ou en examinant la variable $newVM1
.
$newVM1
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM1
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM1
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
Les valeurs de propriété répertoriées entre accolades sont des objets imbriqués. Au cours de l’étape suivante, nous allons vous montrer comment afficher des valeurs spécifiques dans ces objets imbriqués.
Obtenir des informations sur les machines virtuelles avec des requêtes
Voyons comment obtenir des informations plus détaillées à partir de la machine virtuelle que nous venons de créer. Dans cet exemple, nous vérifions le nom de la machine virtuelle et le compte d’administrateur que nous avons créé.
$newVM1.OSProfile | Select-Object -Property ComputerName, AdminUserName
ComputerName AdminUsername
------------ -------------
TutorialVM1 tutorialAdmin
Nous pouvons utiliser les autres commandes Azure PowerShell pour obtenir des informations spécifiques sur la configuration du réseau.
$newVM1 | Get-AzNetworkInterface |
Select-Object -ExpandProperty IpConfigurations |
Select-Object -Property Name, PrivateIpAddress
Dans cet exemple, nous utilisons le pipeline PowerShell pour envoyer l’objet $newVM1 à la cmdlet Get-AzNetworkInterface
. À partir de l’objet d’interface réseau qui en résulte, nous sélectionnons l’objet IpConfigurations imbriqué. À partir de l’objet IpConfigurations, nous sélectionnons les propriétés Name et PrivateIpAddress.
Name PrivateIpAddress
---- ----------------
TutorialVM1 192.168.1.4
Pour confirmer que la machine virtuelle est en cours d’exécution, nous devons nous connecter via le Bureau à distance. Pour ce faire, nous devons connaître l’adresse IP publique.
$publicIp = Get-AzPublicIpAddress -Name tutorialPublicIp -ResourceGroupName TutorialResources
$publicIp |
Select-Object -Property Name, IpAddress, @{label='FQDN';expression={$_.DnsSettings.Fqdn}}
Dans cet exemple, nous utilisons l’objet Get-AzPublicIpAddress
et stockons les résultats dans la variable $publicIp
. À partir de cette variable, nous sélectionnons les propriétés et utilisons une expression pour récupérer la propriété Fqdn imbriquée.
Name IpAddress FQDN
---- --------- ----
tutorialPublicIp <PUBLIC_IP_ADDRESS> tutorialvm1-8a0999.eastus.cloudapp.azure.com
À partir de votre machine locale, vous pouvez exécuter la commande suivante pour vous connecter à la machine virtuelle via le Bureau à distance.
mstsc.exe /v $publicIp.IpAddress
Pour plus d’informations sur l’interrogation des propriétés de l’objet, consultez Querying for Azure resources (Interrogation de ressources Azure).
Création d’une nouvelle machine virtuelle sur le sous-réseau existant
La deuxième machine virtuelle utilise le sous-réseau existant.
$vm2Params = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM2'
ImageName = 'Win2016Datacenter'
VirtualNetworkName = 'TutorialVM1'
SubnetName = 'TutorialVM1'
PublicIpAddressName = 'tutorialPublicIp2'
Credential = $cred
OpenPorts = 3389
}
$newVM2 = New-AzVM @vm2Params
$newVM2
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM2
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM2
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
FullyQualifiedDomainName : tutorialvm2-dfa5af.eastus.cloudapp.azure.com
Vous pouvez ignorer les quelques étapes relatives à l’obtention de l’adresse IP publique de la nouvelle machine virtuelle, dans la mesure où elle est renvoyée dans la propriété FullyQualifiedDomainName de l’objet $newVM2
. Utilisez la commande suivante pour vous connecter à l’aide du Bureau à distance.
mstsc.exe /v $newVM2.FullyQualifiedDomainName
Nettoyage
Maintenant que le didacticiel est terminé, il est temps de nettoyer les ressources créées. Vous pouvez supprimer des ressources individuelles avec la commande Remove-AzResource
, mais la manière la plus sûre de supprimer toutes les ressources dans un groupe de ressources reste de supprimer le groupe à l’aide de la commande Remove-AzResourceGroup
.
$job = Remove-AzResourceGroup -Name TutorialResources -Force -AsJob
$job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running... AzureLongRun... Running True localhost Remove-AzResource...
Cette commande supprime les ressources créées durant le didacticiel et assure leur libération dans le bon ordre. Le paramètre AsJob
empêche le blocage de PowerShell lors de la suppression. Pour attendre la fin de la suppression, utilisez la commande suivante :
Wait-Job -Id $job.Id
Une fois le nettoyage effectué, le didacticiel est terminé. Continuez pour obtenir un résumé de tout ce que vous avez appris et des liens vers des ressources qui vous aideront à effectuer les étapes suivantes.
Résumé
Félicitations ! Vous avez appris à créer des machines virtuelles avec des ressources nouvelles ou existantes, utilisé des expressions et d’autres commandes Azure PowerShell pour capturer des données à stocker dans des variables d’environnement, et examiné certaines ressources créées pour des machines virtuelles Azure.
Ce que vous allez faire maintenant dépend de la manière dont vous envisagez d’utiliser Azure PowerShell. Il existe une variété de documents qui approfondissent les fonctionnalités traitées dans ce didacticiel.
Documentation approfondie sur Azure PowerShell
Vous souhaiterez peut-être prendre le temps d’explorer l’ensemble de la documentation relative à Azure PowerShell.
Pour plus d’informations sur les commandes utilisées dans ce tutoriel, consultez les articles suivants.
- New-AzResourceGroup
- Get-Credential
- New-AzVM
- Select-Object
- Get-AzPublicIpAddress
- Remove-AzResourceGroup
- Wait-Job
Il existe également des articles qui approfondissent les fonctionnalités qui ont été démontrées dans le tutoriel.
Exemples de scripts
Si vous souhaitez commencer immédiatement avec des tâches spécifiques, consultez quelques exemples de scripts.
Commentaires
Si vous souhaitez donner votre avis, proposer des suggestions, ou poser des questions, il existe plusieurs façons de nous contacter.
Send-Feedback
est une commande intégrée pour Azure PowerShell qui permet d’envoyer des commentaires de forme libre à l’équipe.- Complétez une demande de fonctionnalité ou un rapport de bogues dans le référentiel Azure PowerShell.
- Posez une question ou obtenez des précisions en signalant un problème dans le référentiel de documentation Azure PowerShell.
Nous espérons que vous appréciez l’utilisation d’Azure PowerShell !
Vous avez un défi avec cette section ? Si c'est le cas, faites-nous part de vos commentaires pour que nous puissions l'améliorer.