通过非托管自定义镜像创建VM

Posted wangsongshare

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过非托管自定义镜像创建VM相关的知识,希望对你有一定的参考价值。

通过非托管自定义镜像创建VM

  官网有很多文档介绍如何创建自定义镜像,之前support一个客户,已经使用Azure两年多,很多机器都是非托管磁盘,所以帮客户去测试使用通过非托管自定义镜像创建VM,整个脚本很简单,只需要改掉一个参数就可以实现,但是因为没有直接文档说明,当时花了时间去测试,所以直接把成功脚本分享给大家使用,批量创建自定义非托管磁盘VM也只是需要修改imageurl即可,托管磁盘创建晚点分享给大家。

  1. 脚本如下:

$rgName = "myResourceGroup"

$subnetName = "mySubNet"

$singleSubnet = New-AzureRmVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24

$location = "China North"

$vnetName = "myVnetName"

$vnet = New-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $rgName -Location $location `

    -AddressPrefix 10.0.0.0/16 -Subnet $singleSubnet

    $ipName = "myIP"

$pip = New-AzureRmPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $location `

    -AllocationMethod Dynamic

    $nicName = "myNicName"

$nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName `

-Location $location -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id

$nsgName = "myNsg"

 

$rdpRule = New-AzureRmNetworkSecurityRuleConfig -Name myRdpRule -Description "Allow RDP" `

    -Access Allow -Protocol Tcp -Direction Inbound -Priority 110 `

    -SourceAddressPrefix Internet -SourcePortRange * `

    -DestinationAddressPrefix * -DestinationPortRange 3389

$nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName $rgName -Location $location `

    -Name $nsgName -SecurityRules $rdpRule

    $vmName = "myVM"

$vmConfig = New-AzureRmVMConfig -VMName $vmName -VMSize "Standard_A2"

$vm = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $nic.Id

$osDiskUri = "https://xxxxxxxxxxxx.vhd" ,改成自己的vhd url

$osDiskName = $vmName + "osDisk"

$vm = Set-AzureRmVMOSDisk -VM $vm -Name $osDiskName -VhdUri $osDiskUri -CreateOption attach -Linux

 

通过Powershell,就可以创建出来,最后三行是重点,尤其是attach -Linux,如果是windows,就是attach -Windows。

以上是关于通过非托管自定义镜像创建VM的主要内容,如果未能解决你的问题,请参考以下文章

如何上传自定义的VHD镜像系统并创建虚拟机?

在Azure China用自定义镜像创建Azure VM Scale Set

如何上传自定义的VHD镜像系统并创建虚拟机?

Azure VMSS ---- PowerShell创建自定义镜像的VMSS集群

教义自定义存储库方法和非托管实体

为非托管 (C++) 代码编写托管包装器 - 自定义类型/结构