Azure VM farklı bir lokasyona clone almak

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.

Connect-AzAccount

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’
$sourceDiskName = ‘sourceDiskName’
$targetDiskName = ‘targetDiskName’
$targetRG = ‘Target-westeurope’
$targetLocate = ‘West Europe’

Parametreleri kopyalanacak diske uygun olarak giriyoruz.

İş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.

Bunlarda ilgini çekebilir

Önceki yazı
Bulut (Cloud) Sunucu ile neler yapılabilir?
Sonraki yazı
Kubernetes ile yeni bir WordPress blog