Azure PowerShell ile Virtual Machine Scale Set İçin Özel Image Oluşturma
Bir ölçek kümesi oluşturduğunuzda, VM örnekleri dağıtıldığında kullanılacak bir görüntü belirtirsiniz. VM örnekleri dağıtıldıktan sonra görev sayısını azaltmak için özel bir VM görüntüsü kullanabilirsiniz. Bu özel VM görüntüsü, gerekli tüm uygulama kurulumlarını veya yapılandırmalarını içerir. Ölçek kümesinde oluşturulan tüm VM örnekleri özel VM görüntüsünü kullanır ve uygulama trafiğinize sunulmaya hazır hale gelir.
Aşağıdaki örnekde New-AzureRMResourceGroup ile bir kaynak grubu oluşturup, ardından New-AzureRMVM ile bir VM oluşturalım. Bu VM daha sonra özel bir VM görüntüsü için kaynak olarak kullanılacaktır.
New-AzureRMResourceGroup -Name "OnderRG1" -Location "NorthEurope"
New-AzureRMVm `
-ResourceGroupName "OnderRG1" `
-Name "OnderCustomVM" `
-ImageName "Win2016Datacenter" `
-OpenPorts 3389
VM kurulumu tamamlandıktan sonra VM’e bağlanıp, IIS kurulumu yapın. IIS kurulumu için, VM içerisindeki powershell’i açarak aşağıdaki komutu çalıştırabilirsiniz.
Install-WindowsFeature -name Web-Server -IncludeManagementTools
VM’nizi özel bir image olarak kullanmak için hazırlamanın son adımı, VM’in genelleştirilmesidir. Sysprep, tüm kişisel hesap bilgilerinizi ve konfigürasyonlarınızı kaldırır ve VM’i gelecekteki dağıtımlar için temiz bir duruma getirir. Sanal Makineyi genelleştirmek için Sysprep’i çalıştırın ve sanal makineyi kullanıma hazır bir deneyim için ayarlayın. Tamamlandığında, Sysprep’e VM’yi kapatmasını söyleyin. Bunun için aşağıdaki komutu çalıştırabilirsiniz.
C:\Windows\system32\sysprep\sysprep.exe /oobe /generalize /shutdown
Kaynak VM’e IIS web sunucusu yüklendi ve özelleştirildi. Bir scale set kullanmak için özel VM image oluşturalım.
Bir image oluşturmak için VM’nin ayrılması gerekiyor. VM’i Stop-AzureRMVm ile devre dışı bırakabilirsiniz. Ardından, VM’nin durumunu Set-AzureRMVm ile genelleştirildiği şekilde ayarlayabilir, böylece Azure platformu VM’in özel bir image kullanmaya hazır olduğunu bilecektir. Yalnızca genelleştirilmiş bir VM’den image oluşturabilirsiniz:
Stop-AzureRMVM -ResourceGroupName "OnderRG1" -Name "OnderCustomVM" -Force
Set-AzureRMVM -ResourceGroupName "OnderRG1" -Name "OnderCustomVM" -Generalized
Sanal makinenin oluşturulması ve genelleştirilmesi birkaç dakika sürebilir.
Şimdi, New-AzureRMImageConfig ve New-AzureRMImage ile VM’nin bir image oluşturun. Aşağıdaki örnek, VM’nizden OnderImage adlı bir resim oluşturur:
$vm = Get-AzureRMVM -Name "OnderCustomVM" -ResourceGroupName "OnderRG1"
$image = New-AzureRMImageConfig -Location "NorthEurope" -SourceVirtualMachineId $vm.ID
New-AzureRMImage -Image $image -ImageName "OnderImage" -ResourceGroupName "OnderRG1"
Şimdi, yukarıdaki adımda oluşturulan özel VM imagını tanımlamak için -ImageName parametresini kullanan New-AzureRMVms’lerle ayarlanmış bir scale set oluşturabilirsiniz.
New-AzureRMVmss `
-ResourceGroupName "OnderRG1" `
-Location "NorthEurope" `
-VMScaleSetName "OnderScaleSet1" `
-VirtualNetworkName "OnderVnet1" `
-SubnetName "OnderSubnet1" `
-PublicIpAddressName "OnderPublicIPAddress1" `
-LoadBalancerName "OnderLoadBalancer1" `
-UpgradePolicyMode "Automatic" `
-ImageName "OnderImage"