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