如何使用ARM Powershell为新创建的VM分配网络接口?

时间:2017-04-04 14:43:32

标签: powershell azure azureportal

我在Azure租赁中开始使用ARM ......

首先,我创建了一个资源组TEST-RG

我使用Portal在资源组中创建了一个网络接口。我们在资源组TEST-NIC中将其称为TEST-RG

我还创建了一个名为DS2_V2的{​​{1}}虚拟机,运行Windows 2012 R2以及TEST-VM

如何将TEST-RGTEST-NIC相关联?我无法在Portal中看到这样做的方法,也无法在Portal中看到创建没有网络接口的VM的方法,这样我以后可以添加TEST-VM

所以,我认为这只能在PS中完成,但我并不清楚如何...

我丢失了情节吗?任何指导都将不胜感激。

由于

2 个答案:

答案 0 :(得分:1)

首先,您无法部署没有NIC的ARM VM。

如果你看一下this脚本

它有行

$Interface = New-AzureRmNetworkInterface -Name $InterfaceName `
            -ResourceGroupName $ResourceGroupName `
            -Location $Location `
            -SubnetId $VNet.Subnets[0].Id `
            -PublicIpAddressId $PIp.Id

后来被

使用
$VirtualMachine = Add-AzureRmVMNetworkInterface `
            -VM $VirtualMachine `
            -Id $Interface.Id

因此,如果您想使用现有的NIC,您只需要传递$ interface.id(来自Get-AzureRmVMNetworkInterface)

当您将这两者包装在VM部署脚本的其余部分时,您将构建一个具有NIC的VM

答案 1 :(得分:1)

目前,Azure确实支持将NIC添加到现有VM。

  

我可以在Portal中看到创建没有网络的VM的方法   接口,这样我以后可以添加TEST-NIC

我们无法创建没有网卡的虚拟机,但我们可以使用PowerShell通过此网卡创建新的虚拟机。

以下是使用现有NIC 创建新VM的脚本。

$ResourceGroupName = "nic"
$Location = "Eastus"
$StorageName = "jasondisk321"
$StorageType = "Standard_LRS"
$VMName = "myvm"
$VMSize = "Standard_DS2_v2"
$OSDiskName = $VMName + "OSDisk"
$StorageAccount = New-AzureRmStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageName -Type $StorageType -Location $Location
$nic = Get-AzureRmNetworkInterface -Name jasonnic -ResourceGroupName $rgname
$nicId = $nic.Id 
$Credential = Get-Credential
$vm = New-AzureRmVMConfig -VMName $VMName -VMSize $VMSize
$vm = Set-AzureRmVMOperatingSystem -VM $vm -ComputerName $VMName -Windows -Credential $Credential
$vm = Set-AzureRmVMSourceImage -VM $vm -PublisherName "MicrosoftWindowsServer" -Offer "WindowsServer" -Skus "2012-R2-Datacenter" -Version "latest"
$vm = Add-AzureRmVMNetworkInterface -VM $vm -Id $nic.Id
$OSDiskUri = $StorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" + $OSDiskName + ".vhd"
$vm = Set-AzureRmVMOSDisk -VM $vm -Name $OSDiskName -VhdUri $OSDiskUri -CreateOption FromImage
New-AzureRmVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $vm