Azure VM Image Yönetimi

Azure hakkında ki yazılarıma VM’ler üzerinde bulunan diskleri ve Azure imajlarını nasıl daha etkili kullanabileceğimizden konuşarak devam etmek istiyorum. Azure, VM’leri Hyper-V üzerinde çalışmaktadır bu sebepten dolayı VM’lerin sanal disklerinin VHD olduğunu görmekteyiz. Bu sayede kendi ortamımızda oluşturduğumuz bir VHD disk’i Azure’a yükleyebileceğimiz gibi Azure üzerinden de indirmemiz mümkündür.

İlk önce bilgisayarımızda bulunan bir VHD dosyasını Azure’da ki bir storage hesabına yükleyip oradan bir VM’e tanımlayalım.

$localVHD = “C:\LocalVHD\dosyam.vhd”
$azureBlob = “https://emreAzure.blob.core.windows.net/upload/dosyam.vhd”
Add-AzureVHD -LocalFilePath $localVHD -Destination $azureBlob
Add-AzureDisk -DiskName "uploadDisk" -MediaLocation $azureBlob
Get-AzureVM -ServiceName testVM -Name uploadVM |Add-AzureDataDisk -Import -DiskName " uploadDisk " -LUN 0 |Update-AzureVM

Yukarıda kod parçasını incelediğimiz zaman 3. satırda görülen Add-AzureVHD fonksiyonun işlevi yerel bir dosyayı hesabımıza tanımlı olan blob’a yüklemektir. Yüklediğiniz VHD’i kullanabilmemiz için Add-AzureDisk fonksiyonu ile disk olarak işaretlememiz gerekiyor ki bir VM’le ilişkilendirebilelim. Son satırdaysa artık tanımladığımız disk’i VM’e ekliyoruz.
Eğer VHD’i Azure’a yüklemek yerine indirmek isteseydik, Save-AzureVHD fonksiyonunu kullanmamız gerekiyor.

Save-AzureVHD –Source $azureBlob –LocalFilePath $localVHD

İndirmiş olduğunuz VHD’i her hangi bir Windows veya Hyper-V ortamına bağlayıp kullanabiliriz.
Yüklediğimiz VHD’ler üzerinde OS sistemi bulunuyorsa bunları bağımsız bir VM olarak kullanmamızda mümkündür, bunun için öncelikle Add-AzureVMImage fonksiyonu yardımıyla VM imajı yaramamız gereklidir.

Add-AzureVMImage –ImageName customLinux –MediaLocation $azureBlob –OS Linux

Yüklemiş olduğumuz OS ve öteki VHD diskini beraber kullanarak da bir VM yaratmamız mümkündür. Aslında yaptığımız şey daha önce ki yazımda da bahsettiğim gibi OS diski olarak yüklediğimiz VHD’i göstermemizdir.

$vmConfig = New-AzureVMConfig -Name “linuxTest” -InstanceSize “Small” -DiskName “customLinux”
$vmConfig | Add-AzureDataDisk -Import -DiskName $uploadDisk -LUN 0
$vmConfig | New-AzureVM -ServiceName “testAzure” 

Direk Azure’da bulunan bir VM’i istersek özelleştirip imaj haline getirmemizde mümkündür. VM’i özelleştirdikten sonra sysprep yapıp yeniden konfigure edilebilir hale getirmemiz önemlidir.VM’i imaj haline getirmenin 2 yöntemi vardır. Bir tanesi Azure portal üzerinden Capture özelliğidir, bunu kullanmak için VM’in üzerine basıp alt panelden Capture’u seçmemiz gereklidir.Azure VM Disk - Capture

 

Bu işlemi Powershell üzerinden yapmak için

$imageName = "customLinux"

$imageDesc = “Lamp server”

Save-AzureVMImage -ServiceName “testAzure”  -Name “customLinux” -NewImageName $imageName -NewImageLabel $imageLabel -OSState Generalized

Artık customLinux isimli imajımızı istediğimiz zaman kullanabiliriz.

Mevcut bir imajı güncellemek için Update-AzureVMImage fonksiyonu kullanılmaktadır. Mesela yukarıda ki customLinux isimli imajın açıklamasını değiştirmek istersem.

Update-AzureVMImage -ImageName “customLinux” –Description “Apache+Php+Mysql Server”

Son olarak mevcut bir imajı silmek istersek

Remove-AzureVMImage -ImageName “customLinux” DeleteVHD

 

Bu blog yazısı Emre Bozlak tarafından paylaşılmıştır. Referans vererek istediğiniz gibi kullanabilirsiniz. Eğer bir sorunuz olursa eposta veya sosyal medya hesaplarım üzerinden bana ulaşabilirsiniz. Yazılarımı Twitter'dan @emrebozlak veya RSS üzerinden takip edebilirsiniz.

Leave a comment