Bu yazımızda Microsoft Azure VM clone için PowerShell üzerinde yapılacak işlemlerden bahsettik. Bu makalede aşağıda tekrar hatırlattığımız üzere “azcopy” uygulaması gerekli olup, anlatımda “C:\azcopy\azcopy.exe” yolunda olduğu varsayılarak anlatılmıştır. Farklı bir konumda ise, paylaştığımız scriptte yolları azcopy uygulama lokasyonuna göre güncellemeniz gerekmektedir. Aksi durumda, kopyalama aşamasında problem yaşanacaktır.
Install-Module Az -AllowClobber -force
Import-Module Az
Connect-AzAccount
Öncelikle gerekli olan modülleri yükleyerek, Microsoft Azure hesabımıza bağlanıyoruz. “Az” modülü yüklendi ve import edildiyse yalnızca Connect-AzAccount komutu ile bağlantı sağlayabilirsiniz.
Connect-AzAccount sonrasında bizi login ekranı karşılıyor olacak. Bu işlem bağlantı hızınıza göre bir kaç saniye sürebilir.
Bu işlemin devamında azcopy’e ihtiyacınız olacak. Bu makalede azcopy c:\azcopy\azcopy.exe adresinde yer aldığını varsayıyoruz. Daha önce yüklemediyseniz, ilgili linkten yükleme işlemini yaparak c:\azcopy lokasyonunda konumlandırmanızı öneririz.
Get-AzSubscription
Azure Susbscription seçimi için öncelikle listeyi alıyoruz. Burada ilgili Subscription’a ait aldığımız Id bilgisi ile devam ediyoruz. ID, 2. kolonda yer alacaktır.
Select-AzSubscription 2e7d5b5a-xxxx-xxxx-xxxxxxxxx
İgili subscription’a geçiş yapıyoruz.
$sourceRG = ‘source-RG-Group’
Parametreleri kopyalanacak diske uygun olarak giriyoruz.
$sourceDiskName = ‘sourceDiskName’
$targetDiskName = ‘targetDiskName’
$targetRG = ‘Target-westeurope’
$targetLocate = ‘West Europe’
İşletim Sistemimiz Windows mu Linux mu?
Kopyaladığımız VM’e ait işletim sistemini parametre olarak belirtiyoruz.
$targetOS = ‘Linux’
$sourceDisk = Get-AzDisk -ResourceGroupName $sourceRG -DiskName $sourceDiskName
512 offset ile sizeInBytes ve -Upload flag ekliyoruz
Artık konfigasyona göre clone almak için hazırız. Belirttiğimiz parametrelere bağlı olarak VM disk clone olarak farklı bir lokasyona aktarılacak.
$targetDiskconfig = New-AzDiskConfig -HyperVGeneration “V1” -SkuName ‘Standard_LRS’ -osType $targetOS -UploadSizeInBytes $($sourceDisk.DiskSizeBytes+512) -Location $targetLocate -CreateOption ‘Upload’
$targetDisk = New-AzDisk -ResourceGroupName $targetRG -DiskName $targetDiskName -Disk $targetDiskconfig
$sourceDiskSas = Grant-AzDiskAccess -ResourceGroupName $sourceRG -DiskName $sourceDiskName -DurationInSecond 86400 -Access ‘Read’
$targetDiskSas = Grant-AzDiskAccess -ResourceGroupName $targetRG -DiskName $targetDiskName -DurationInSecond 86400 -Access ‘Write’
C:\azcopy\azcopy.exe copy $sourceDiskSas.AccessSAS $targetDiskSas.AccessSAS –blob-type PageBlob
Revoke-AzDiskAccess -ResourceGroupName $sourceRG -DiskName $sourceDiskName
Revoke-AzDiskAccess -ResourceGroupName $targetRG -DiskName $targetDiskName
Diskimiz Hazır
Artık clone alarak oluşturduğunuz disk’i arama bölümünden bularak, + Create VM seçeneği ile bu diskten bir VM oluşturabilirsiniz.