从已有的VHD创建VM是使用Azure中经常要操作的内容。
本文将介绍如何采用Json Template从已经有的VHD创建VM。
一、准备VHD
在我的Azure账户中选择一台VM,如下图:
查看其磁盘信息:
磁盘所在的链接:https://gwzdiskdisks420.blob.core.chinacloudapi.cn/vhds/hwvntptest0220170401203500.vhd
然后将其删除,在ARM的portal中,删除了虚拟机,VHD还是保留的。注意它所在的Vnet信息:
删除完成后,确认此VM的Disk还存在。
二、通过VHD创建VM
1. Json Template
在GitHub上找到相应的Json Template:
打开Azuredeploy.json文件:
链接如下:
2. 通过powershell从这个VHD创建VM
打开powershell_ise,登录Azure China。然后通过Powershell命令创建VM:
New-AzureRmResourceGroupDeployment -Name vhd -ResourceGroupName vnet-bgp -Mode Incremental · -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/201-vm-specialized-vhd-existing-vnet/azuredeploy.json · -vmName hwfmvhd -osType Linux -osDiskVhdUri https://gwzdiskdisks420.blob.core.chinacloudapi.cn/vhds/hwvntptest0220170401203500.vhd · -vmSize Standard_D1 -existingVirtualNetworkName vnet-bgp-3 -subnetName vlan1 · -existingVirtualNetworkResourceGroup vnet-bgp -dnsNameForPublicIP hwfmvhd DeploymentName : vhd ResourceGroupName : vnet-bgp ProvisioningState : Succeeded Timestamp : 4/12/2017 7:08:49 AM Mode : Incremental TemplateLink : Uri : https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/201-vm-specialize d-vhd-existing-vnet/azuredeploy.json ContentVersion : 1.0.0.0 Parameters : Name Type Value =============== ========================= ========== vmName String hwfmvhd osType String Linux osDiskVhdUri String https://gwzdiskdisks420.blob.core.chinacloudapi.cn/vhds/hwvntptest0220170401203500.vhd vmSize String Standard_D1 existingVirtualNetworkName String vnet-bgp-3 existingVirtualNetworkResourceGroup String vnet-bgp subnetName String vlan1 dnsNameForPublicIP String hwfmvhd Outputs : DeploymentDebugLogLevel
这样VM就创建成功了。