Categories: Azure

Création d’une machine virtuelle sur Azure en PowerShell à partir d’un VHD existant

Dans un précédent article, je vous présentais comment envoyer un VHD personnalisé depuis votre poste local vers Azure. Aujourd’hui, nous allons voir comment à partir d’un VHD maison nous allons pouvoir créer une machine virtuelle et tous les composants nécessaires à son bon fonctionnement sur le cloud de Microsoft.

Dans mon exemple, l’objectif sera de provisionner un VM de type Windows 10 directement dans Azure. En effet, par défaut (et pour l’instant en tout cas – 25/10/2016), il est toujours impossible de provisionner une VM Windows 10 dans Windows Azure (sauf si votre subscribtion est obtenue via un compte MSDN Visual Studio Developer). Si vous avez testé, vous aurez peut-être observé les messages suivants :

Exclusively available for MSDN subscribtion…

J’ai donc créé un VHD sur lequel j’ai installé Windows 10 et je l’ai transféré dans un container sur mon Storage Account. Pour plus d’informations sur comment transférer un VHD vers Auzre, je vous invite à consulter ce article.

Nous allons donc maintenant utiliser ce VHD et le rattacher à mon infrastructure existante. Profitez-en pour récupérer le chemin complet vers votre VHD, nous en aurons besoin pour la suite. 😉

Bien sûr, lorsque je dis infrastructure existante, cela veut dire que vous devez déjà disposer des composants suivants (que nous aurons besoin de mentionner dans la CmdLet qui va nous permettra de créer notre virtual machine) :

  • Ressource Group
  • Virtual Network
  • Location (westeurope, northeurope, etc.) – il s’agit des codes name pour les différents centres Azure dans le monde. Vous pouvez retrouver la liste en suivant cette URL.
  • (éventuellement) Public IP (si votre VM doit disposer d’une adresse IP publique)
  • (éventuellement) Availability Set (si vous souhaitez rattacher cette machine virtuelle à un Availability Set déjà existant)

Une fois que vous êtes prêt nous allons exécuter la CmdLet suivante :

#Login-AzureRmAccount (vous devez être identifié sur Azure)
#Select-AzureRmSubscription -SubscribtionId "xxx-xxx-xxx" (vous avez déjà sélectionné la subscribtion dans laquelle vous travaillez)
$resourceGroupName = "ctxtgi12"
$destinationVhd = "https://xxxxxxxx.blob.core.windows.net/vhds/template_Windows10_tgi.vhd"
$virtualNetworkName = "VirtualNetwork"
$locationName = "westeurope"
$virtualNetwork = Get-AzureRmVirtualNetwork -ResourceGroupName $resourceGroupName -Name $virtualNetworkName
$publicIp = New-AzureRmPublicIpAddress -Name "Win10-PIP" -ResourceGroupName $ResourceGroupName -Location $locationName -AllocationMethod Static
$networkInterface = New-AzureRmNetworkInterface -ResourceGroupName $resourceGroupName -Name "Win10-NIC" -Location $locationName -SubnetId $virtualNetwork.Subnets[0].Id -PublicIpAddressId $publicIp.Id
$availabilityset = (Get-AzureRmAvailabilitySet -ResourceGroupName $resourceGroupName)[0].Id
$vmConfig = New-AzureRmVMConfig -VMName "MyVMWindows10" -VMSize "Standard_DS1" #-AvailabilitySetID $availabilityset
$vmConfig = Set-AzureRmVMOSDisk -VM $vmConfig -Name "MyVMWindows10" -VhdUri $destinationVhd -CreateOption Attach -Windows
$vmConfig = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $networkInterface.Id
New-AzureRmVM -VM $vmConfig -Location $locationName -ResourceGroupName $resourceGroupName

A adapter bien entendu en fonction de votre cas de figure ! 🙂

Si l’on regarde un peu de plus prés les quelques lignes ci-dessus, nous pouvons remarquer les points suivants :

  • Ma VM est automatiquement ajoutée au sein de mon VirtualNetwork et disposera donc d’un IP au sein de mon Subnet. Dans le cas présent et au vue des choix de configuration de mon VirtualNetwork, ma VM se verra attribuer une NIC Win10-NIC avec une IP de type Statique.
  • Je lui attribue également automatiquement une addresse IP publique qui portera le nom Win10-PIP.
  • Ma VM s’appellera MyVMWindows10 et sera bien dans la zone West Europe.
  • Vous pouvez également l’intégrer automatiquement à un Availability Set (attention à accorder votre choix de Size VM). Dans mon exemple, j’ai créé une VM de type Standard_DS1.
  • Et enfin, dans l’avant-dernière ligne on utilise le paramètre attach pour attacher notre VHD à notre nouvelle machine virtuelle et on lui indique qu’il s’agira d’une VM de type Windows.

Après quelques instants, vous remarquerez sur le portail Azure que les différents éléments ont été créés et que notre machine virtuelle a d’ailleurs été automatiquement démarrée :

La machine virtuelle a été générée conformément à nos besoins (ip interne dans le virtual network, ip publique, sizing, azure location, etc.). Pour vérifier que tout est conforme, il ne vous reste alors plus qu’à vous y connecter en RDP ! 🙂

Un grand merci à Léon dont l’article suivant m’a permis d’avancer sur ce point : https://blogs.infosupport.com/creating-a-vm-in-azure-based-on-an-uploaded-vhd/. 🙂

Share
Published by
thibault

Recent Posts

Les comptes Microsoft sans mot de passe : une révolution sécuritaire en 2025

Les comptes Microsoft sans mot de passe Dans un monde où la sécurité numérique est…

5 minutes ago

Pourquoi OpenAI renonce à se restructurer en société à but lucratif : 3 raisons clés

Pourquoi OpenAI renonce à se restructurer en société à but lucratif OpenAI renonce à se…

3 jours ago

Sécurité des messageries chiffrées : Pourquoi Telegram et Signal menacent de quitter la France

Sécurité des messageries chiffrées : Pourquoi Telegram et Signal menacent de quitter la France La…

4 jours ago

5 Alternatives à OneDrive pour le Stockage et le Partage de Documents en Ligne

5 alternatives à OneDrive pour le stockage et le partage de documents en ligne Dans…

5 jours ago

eSIM Android : Google facilite la sauvegarde et le transfert

eSIM Android : Google Facilite la Sauvegarde et le Transfert L'eSIM Android est sur le…

6 jours ago

Spotify et Apple : La fin d’une commission de 30% Révolutionne l’Économie des Applications

Spotify et Apple : La fin d'une commission de 30% Révolutionne l'Économie des Applications Après…

7 jours ago