Azure Resource Manager yapısı yeni Portal ile birlikte kullanıma sunulan benimde çok kullanışlı bulduğum bir özellik. Eski portalı kullananların belki de ilk başta yadırgadığı bir yenilik olsa da bence kullanıldıkça faydasının hızlıca görüleceği bir tasarım.
Powershell ile Resource Manager tabanlı Azure sanal makine oluşturmaya geçmeden önce aşağıdaki ekran görüntüsünden Azure RM’in içerisindeki bileşenlerin bir kısmını görebilirsiniz.
Azure RM ile sanal makine oluşturmak istediğinizde hangi öğelerin zorunlu kullanmanız gerektiğini hangilerinin de opsiyonel kullanılması gerektiğini bilmeniz gerekmektedir. Bunları sizler için aşağıya ekledim.
- Resource group (required)
- Storage account (gerekli)
- A virtual network (gerekli)
- Availability set (opsiyonel)
- Network interface card (NIC) ve public IP adresi (ikisi içinde gerekli)
- DNS domain name label (opsiyonel)
- Additional data diskler (opsiyonel)
- Publisher, offer ve Azure virtual machine image SKU (gerekli)
- Operating system disk adı (gerekli)
Bu bilgiler ışınğında Powershell komutunu şu şekilde oluşmaktadır.
# Switch to the Resource Manager mode
Switch-AzureMode AzureResourceManager
# Set values for existing resource group and storage account names
$rgName=”LOBServers”
$locName=”West US”
$saName=”contosoLOBServersSA”
# Set the existing virtual network and subnet index
$vnetName=”AZDatacenter”
$subnetIndex=0
$vnet=Get-AzurevirtualNetwork -Name $vnetName -ResourceGroupName $rgName
# Create the NIC
$nicName=”AzureInterface”
$domName=”contoso-vm-lob07″
$pip=New-AzurePublicIpAddress -Name $nicName -ResourceGroupName $rgName -DomainNameLabel $domName -Location $locName -AllocationMethod Dynamic
$nic=New-AzureNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[$subnetIndex].Id -PublicIpAddressId $pip.Id
# Specify the name, size, and existing availability set
$vmName=”LOB07″
$vmSize=”Standard_A3″
$avName=”WEB_AS”
$avSet=Get-AzureAvailabilitySet –Name $avName –ResourceGroupName $rgName
$vm=New-AzureVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
# Add a 200 GB additional data disk
$diskSize=200
$diskLabel=”APPStorage”
$diskName=”21050529-DISK02″
$storageAcc=Get-AzureStorageAccount -ResourceGroupName $rgName -Name $saName
$vhdURI=$storageAcc.PrimaryEndpoints.Blob.ToString() + “vhds/” + $vmName + $diskName + “.vhd”
Add-AzureVMDataDisk -VM $vm -Name $diskLabel -DiskSizeInGB $diskSize -VhdUri $vhdURI -CreateOption empty
# Specify the image and local administrator account, and then add the NIC
$pubName=”MicrosoftWindowsServer”
$offerName=”WindowsServer”
$skuName=”2012-R2-Datacenter”
$cred=Get-Credential -Message “Type the name and password of the local administrator account.”
$vm=Set-AzureVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm=Set-AzureVMSourceImage -VM $vm -PublisherName $pubName -Offer $offerName -Skus $skuName -Version “latest”
$vm=Add-AzureVMNetworkInterface -VM $vm -Id $nic.Id
# Specify the OS disk name and create the VM
$diskName=”OSDisk”
$storageAcc=Get-AzureStorageAccount -ResourceGroupName $rgName -Name $saName
$osDiskUri=$storageAcc.PrimaryEndpoints.Blob.ToString() + “vhds/” + $vmName + $diskName + “.vhd”
$vm=Set-AzureVMOSDisk -VM $vm -Name $diskName -VhdUri $osDiskUri -CreateOption fromImage
New-AzureVM -ResourceGroupName $rgName -Location $locName -VM $vm
Bir sonraki Azure makalesinde görüşmek üzere.
Ka®a