使用我自己的 vhd 在资源组中创建 VM

Create a VM in a resource group using my own vhd

在经典 portal/ASM 中,我可以使用一些简单的 PowerShell cmdlet 来使用我自己的 vhd 创建 VM。设置变量后,流程几乎是 Add-AzureVhd > Add-AzureDisk > New-AzureVm。

我这辈子都找不到任何关于使用 PowerShell 和我自己的 vhd 创建 ARM VM 的文档。

谁能指出我正确的方向?

编辑:这是我正在使用的代码。

$rgName = "somerg"
$location = "centralus"
$storageName = "somestorage"
$storageType = "Standard_LRS"

$nicname = "client1nic"
$subnet1Name = "Subnet-1"
$vnetName = "somevnet"
$vnetAddressPrefix = "10.0.0.0/16"
$vnetSubnetAddressPrefix = "10.0.0.0/24"

$vmName = "Client1"
$vmSize = "Standard_A2"
$osDiskName = $vmName + "osDisk"

$pip = New-AzureRmPublicIpAddress -Name $nicname -ResourceGroupName $rgName                 -Location $location -AllocationMethod Dynamic
$nic = New-AzureRmNetworkInterface -Name $nicname -ResourceGroupName $rgName    -Location $location -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id
$vm = New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize$vm = Add-  AzureRmVMNetworkInterface -VM $vm -Id $nic.Id
$osDiskUri = "https://somestorage.blob.core.windows.net/vhds/Client1.vhd"
$vm = Set-AzureRmVMOSDisk -VM $vm -Name $osDiskName -VhdUri $osDiskUri -  CreateOption attach -Windows

New-AzureRmVM -ResourceGroupName $rgName -Location $location -VM $vm -  Verbose -Debug

Set-AzureRmVMOSDisk 在使用 -CreateOptions 创建 OS 磁盘时有三个选项第一个是 fromImage,它从先前的映像创建一个机器。

然后 attach 附加一个预先存在的磁盘,这将是您需要的选项。

还有 empty,但我还没有找到它的用例!

无论如何,这应该可以满足您的需求。

Set-AzureRmVMOSDisk -VM $vm -Name "test" -VhdUri $uri -CreateOption attach -Windows 

包裹成剩下的一个VM Create script