Merhaba,
Bu makalemde daha önce paylaştığım sample scriptlere bir tane daha eklemek istedim. Azure üzerinde Vm oluştururken var olan Vnet üzerinde hazır Windows Server 2016 Datacenter imajını kullanmak isterseniz aşağıdaki örnek scripti kullanabiliriniz. Script aynı zamanda yeni bir storage account oluşturarak boot diagnostic konfigürasyonu da yapıyor.
Aslında daha önce oluşturmuş olduğum scriptlerden çok farklı değil. Sadece yukarıda bahsettiğim bir kaç kısımda farklılıklar bulunuyor. Siz de gereksinimlerinize uygun olarak scripti düzenleyebilirsiniz.
Resim – 1
Script üzerine gerekli açıklamaları adım adım yaptım. Umarım işinize yarar.
Login-AzureRmAccount
#Var Olan Resource Group İsmi
$resourceGroupName =‘FRTVM02RG’
#Var olan Vnet ismi
$virtualNetworkName = ‘FRTVNET’
#Vnet resource group
$virtualNetworkResourceGroup = ‘FRTVMRG’
#Oluşturulacak VM’in ismi
$virtualMachineName = ‘FRTVM02’
#Oluşturulacak VM’in size’ı
$virtualMachineSize = ‘Standard_A1’
#Lokasyon
$location = “WestEurope”
#VM Credential
$cred = Get-Credential -Message “VM için kullanıcı adı ve parola giriniz.”
#Network security group ismi
$nsgName = “FRTVM02-NSG”
#Network security group RDP rule
$nsgRuleName = “RDP-Rule”
# Resource Group oluşturma işlemi
New-AzureRmResourceGroup -Name $resourceGroupName -Location $location
#Boot Diagnostic için Storage Account (Storage account ismini küçük harflerle yazdığınızdan emin olun)
$diagStorageAccount = New-AzureRmStorageAccount -ResourceGroupName $resourceGroupName -AccountName “frtdiagstorageaccount” -Location $location -SkuName “Standard_LRS”
#Public ip adresi
$publicIp = New-AzureRmPublicIpAddress -Name ($VirtualMachineName.ToLower()+‘_ip’) -ResourceGroupName $resourceGroupName
-Location $location -AllocationMethod Dynamic
#Varolan vnet’in değişkene atanması
$vnet = Get-AzureRmVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $virtualNetworkResourceGroup
#NSG için rdp kuralının oluşturulması
$nsgRuleRDP = New-AzureRmNetworkSecurityRuleConfig -Name $nsgRuleName -Protocol Tcp `
-Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
-DestinationPortRange 3389 -Access Allow
#NSG’nin oluşturulmsı
$nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName $resourceGroupName -Location $location -Name $nsgName -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 $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-AzureRmVMOperatingSystem -VM
$vmConfig -Windows -ComputerName $virtualMachineName -Credential $cred
$vmConfig = Set-AzureRmVMSourceImage -VM $vmConfig -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter
-Version latest
$vmConfig = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $nic.Id
$vmConfig = Set-AzureRmVMBootDiagnostics -VM $vmConfig -Enable -ResourceGroupName $resourceGroupName -StorageAccountName $diagStorageAccount.StorageAccountName
#VM’in var olan managed disk ile var olan network’te oluşturulması
New-AzureRmVM -VM $vmConfig -ResourceGroupName $resourceGroupName -Location $location
Umarım işinize yarar.
Bir sonraki bölümde görüşmek üzere.
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
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
Fırat