使用我自己的 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
在经典 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