Objectif : Je possède une machine virtuelle tournant sur Windows 2016 Serveur et jouant le rôle de serveur DCHP. Cette VM se trouve tourne sur un HyperV local et je souhaite la trasnférer vers mon compte Azure
Caractéristiques de la machine virtuelle
Hyperviseur : Hyper-V
Type : Generation2
Mémoire : 4Go
Format du disque virtuel : vhdx
Taille : 30Go
Configuration de la machine virtuelle :
Nom : W2016-ONPRE
IP : 192.168.0.1
GW : 192.168.0.1
DNS : 8.8.8.8
Rôle : DHCP Server
Etendue : 192.168.0.10 – 50
Mask : 255.255.255.0
GW : 192.168.0.1
DNS : 8.8.8.8
PROCEDURE
Pré-requis VM :
Pré-requis Azure :
Dans le portail Azure, cliquez sur Groupe de ressources -> Ajouter
Nom : ImportLocalServer
Via l’interface : Comptes de stockage – Ajouter
Groupe de ressource : ImportLocalServer
Nom du compte de stockage : StockageLocalVM
Emplacement : Europe Occidentale
Type de compte : Storage V1
Replication : LRS
Via l’interface : Réseaux Virtuel – Ajouter
Nom : ReseauCloud
Espace d’adressage : 192.168.0.0/16
Groupe de ressources : ImportLocalServer
Emplacement : Europe Occidentale
Sous réseau : ReseauServersadmin
Plage : 192.168.0.0/24
Conversion du disque virtuel en VHD :
Le fichier se convertit en peu de temps. Cela dépend toutefois de la taille de votre VM
Transfert du fichier VHD vers Azure :
Allez dans le Gestionnaire HyperV
Cliquez sur la VM -> Paramètres – Disques – Modifier (changez le chemin du disque auparavant pour vous assurez qu’il prenne bien en compte la VM en VHD)
Dans l’assistant cliquez sur Modifier – Convertir – VHD – Taille fixe
Donner un nom au futur fichier : W2016-ONPRE-TF.vhd
La conversion prend quelques minutes (variable en fonction de la taille de la VM)
Via powershell : New-AzureRmStorageAccount -RessourceGroupName “ImportLocalServer” -name “stockagelocalvm” -Location “west europe” -SkuName “Standard_LRS” -Kind “Storage”
Via l’interface : Comptes de stockage – Ajouter
Les modules powershell suivant doivent être installés :
Install-module -name PowershellGet -Force
Install-module -name AzureRM -Allowclobber
Commandes pour le transfert :
Login-azurermaccount
$rg = “ImportLocalServer”
Add-AzureRmVHD -ResourceGroupName $rg -Destination https://StockageLocalVM.blob.core.windows.net/images/W2016-ONPRE.vhd -LocalFilePath “c:\VMConvert\W2016-ONPRE-TF.vhd
L’opération a pris 1h pour un serveur de 30Go
Pour vérifier que l’image est bien transférée :
Sur le portail Azure, aller dans Compte de Stockage -> StockageLocalVM -> Objet Blob -> Images : Vous devriez voir à cet endroit le fichier vhd
Maintenant que le fichier de la VM local est transféré, il ne reste plus qu’à la créer sur Azure
Définir les variables ressource groupe, Region et Ip Publique
$rg = “ImportLocalServer”
$region = “West europe”
$ippub = “ippubvm”
Récupérer la config du réseau virtuel
$virtualn = get-azurermvirtualnetwork -Name “NetlocalVM” -resourcegroupname $rg
$subnetID = (Get-azurermvirtualnetworksubnetconfig -name “reseauserversadmin” -virtualnetwork $virtualn).id
Créer l’adresse IP publique :
$pip = new-azurermpublicipaddress – Name $ippub -ResourceGroupName $rg -Location $region -AllocationMethod Dynamic
Créer l’interface réseau :
$intnic = “interface2”
$nic = New-AzureRmNetworkInterface -Name $intnic -ResourceGroupName $rg -Location $region -Subnetid $subnetid -PublicIpAddressId $pip.id
Création de la machine virtuelle à partir du VHD :
$Credential = get-credential (indiquer le nom d’un compte local qui sera admin du serveur)
$nomcs = “StockageLocalVm” (espace de stockage)
$nomVM = “W2016-DHCP-Server” (Nom que possèdera la VM)
$storageinf = get-AzureRmStorageAccount -ResourceGroupName $rg -AccountName &nomcs (Récupération des infos du compte de stockage)
Configuration de la machine virtuelle :
$vmconfig = New-AzureRmVMConfig -VMName $nomvm -VMSize “Standard_A1”
Spécification de l’OS cible, du nom d’hote, de la carte réseau :
$vm = set-AzureRmVMOperatingSystem -VM $vmConfig -Windows -ComputerName “W2016-DHCP-01” -credential $credential -ProvisionVMAgent -EnableAutoUpdate
$vm = Add-AzureRMVMNetworkInterface -VM $vm -Id $nic.id
Création du Système d’exploitation dasn l’espace de stockage :
$osDiskUri = ‘{0}vhds/{1} – {2}.vhd’ -f
$storageinf.PrimaryEndpoints.Blob.ToString(), $nomvm.ToLower(), “OS”
Configuration du disque OS pour utiliser le fichier VHD :
$vm = Set-AzureRmVMOSDisk -VM $vm -Name “OSWin” -VhdUri $osDiskUri -CreateOption fromImage -SourceImageUri “https://stockageLocalVM.blob.core.windows.net/images/W2016-ONPRE.vhd” -Windows
Approvisionnement de la machine virtuelle :
New-AzureRmVM -ResourceGroupName $rg -Location $region -VM $vm
La création de la machine prend un peu de temps, vous pouvez voir l’avancement sur le portail dans la partie machine virtuelle.