Azure RM PowerShell – Var olan Disk ile Var olan Network Üzerinde Vm Oluşturma

Bir önceki bölümde full özelleştirilmiş şekilde Azure ARM mimarisinde PowerShell kullanarak nasıl sanal makine oluşturacağınızı anlatmıştım. Bu bölümde de var olan bir disk ve vm kulanılarak nasıl sanal makine oluşturacağınızdan bahsedeceğim. Diğer makale gibi adım adım anlatmayacağım. Çünkü çoğu adım diğer ile aynı. Değişen bir kaç kısım var onları ele alacağım. Zaten scriptin üzerinde her komuta ilişkin komutun ne yaptığını içeren açıklamalar da bulunuyor.

Resim – 1

Scriptte farklı olarak var olan managed diski get etmek için aşağıdaki komut kullanılmıştır.

#Var olan managed diskin değişkene atanması

$disk Get-AzureRmDisk -DiskName $osDiskName -ResourceGroupName $resourceGroupName

Aynı şekilde var olan vnet bilgisini elde etmek için de aşağıdaki komut kullanılarak vnet bilgisi değişkene atanmıştır.

#Varolan vnet’in değişkene atanması

$vnet Get-AzureRmVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $resourceGroupName

Son olarak da imajdan yeni bir kurulum yapılmadığı için storage profile’ına aşağıdaki komut ile disk bilgisi işlenmiştir. Bu komut ile diskin var olan bir managed disk olduğu, windows işletim sistemine sahip olduğu ve VM oluşturma işlemi sırasında sanal makineye attach edileceği belirtilmiştir.

$vmConfig Set-AzureRmVMOSDisk -VM $VirtualMachine -ManagedDiskId $disk.Id -CreateOption Attach -Windows

Bunlar dışındaki tüm config’ler bir önceki makalemde ayrıntılı olarak anlattıklarımla aynı. O yüzden aynı şekilde ekran görüntüleri kullanarak anlatmadım.

Scriptin tamamı aşağıdaki gibidir.

Login-AzureRmAccount

#Var Olan Resource Group İsmi

$resourceGroupName =‘TestRG2’

#Var olan managed OS disk ismi

$osDiskName ‘FRTVM01_OsDisk_1_eaf059cbc8b84c85961a24bd9053cfa6’

#Var olan Vnet ismi

$virtualNetworkName ‘FRTVNET’

#Oluşturulacak VM’in ismi

$virtualMachineName ‘FRTVM02’

#Oluşturulacak VM’in size’ı

$virtualMachineSize ‘Standard_A1’

#Var olan managed diskin değişkene atanması

$disk Get-AzureRmDisk -DiskName $osDiskName -ResourceGroupName $resourceGroupName

#Public ip adresi

$publicIp New-AzureRmPublicIpAddress -Name ($VirtualMachineName.ToLower()+‘_ip’) -ResourceGroupName $resourceGroupName 

-Location $disk.Location -AllocationMethod Dynamic

#Varolan vnet’in değişkene atanması

$vnet Get-AzureRmVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $resourceGroupName

#NSG için rdp kuralının oluşturulması

$nsgRuleRDP New-AzureRmNetworkSecurityRuleConfig -Name NSGRuleRDP-Protocol Tcp `

-Direction Inbound -Priority 1000 -SourceAddressPrefix -SourcePortRange -DestinationAddressPrefix * `

-DestinationPortRange 3389 -Access Allow

#NSG’nin oluşturulmsı

$nsg New-AzureRmNetworkSecurityGroup -ResourceGroupName $resourceGroupName -Location $disk.Location -Name FRTVM02-NSG -SecurityRules $nsgRuleRDP

#vnet,public ip ve nsg’nin kullanılıp VM’e ait Nic oluşturulması

$nic New-AzureRmNetworkInterface -Name ($VirtualMachineName.ToLower()+‘_nic’) -ResourceGroupName $resourceGroupName
-Location $disk.Location -SubnetId $vnet.Subnets[0].Id
-PublicIpAddressId $publicIp.Id -NetworkSecurityGroupId $nsg.Id

#VM konfigürasyonlarının belirlenmesi

$vmConfig New-AzureRmVMConfig -VMName $virtualMachineName -VMSize $virtualMachineSize

$vmConfig Set-AzureRmVMOSDisk -VM $VirtualMachine -ManagedDiskId $disk.Id -CreateOption Attach -Windows

$vmConfig Add-AzureRmVMNetworkInterface -VM $VirtualMachine -Id $nic.Id

#VM’in var olan managed disk ile var olan network’te oluşturulması

New-AzureRmVM -VM $vmConfig -ResourceGroupName $resourceGroupName -Location $disk.Location

Bu scriptte diğerinden farklı olarak $location değişkeni kullanmadım. Var olan diskin lokasyonu neresi ise bütün bileşenleri orada oluşturmak adına diskin lokasyonunu $disk.location ile elde edip komutlarda kullandım. Bunun yerine lokasyona ilişkin bir değişken atanıp da kullanılabilirdi. Ben herhangi bir yanlışlık olmaması açısından bu şekilde kullandım.

Ek olarak diskin bulunduğu resource group’un ismini de değişken olarak atadım. (Bir önceki makalede her şeyi sıfırdan oluşturduğumuz için resource group’u da script içerisinde oluşturmuştuk. Burada diskin bulunduğu resource group’u kullandık)

Özetle yukarıdaki script ile var olan bir disk kullanarak var olan bir network içerisinde sanal makine oluştuma işlemini kolaylıkla yapabilir siniz.

Kolay Gelsin.

Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

https://docs.microsoft.com/en-us/azure/virtual-machines/windows/overview

TAGs: powershell, Azure Rm Powershell Module, Create Azure VM , Create Azure RM VM with Powershell, Azure RM VM via powershell, Create Azure virtual machine via powershell, Powershell Azure VM Command, Azure RM Module, Manage azure vm with powershell, Azure Powershell, Powershell Module for Azure

Yazı gezinmesi

Mobil sürümden çık