生成Image映像文件,记录好Image的URL(下面URL为测试URL,具体请参考实际):
ImageURL:
https://hlmrgstoragen.blob.core.chinacloudapi.cn/vhdscopy/hlmn4sysclocap-os-2017-09-21-2CE40CEE.vhd

安装和配置Azure Powershell的步骤请参考对应的安装文档。安装配置完成后,使用下面的命令进行创建(#为注释,忽略对应的说明):

#指定虚拟机名称

$vmname = "hlmsysr2n5"

#指定资源组

$resourceGroup = "hlmrgn"

#指定区域位置

$location = "China North"

#指定虚拟网络

$vnetname = "hlmrgvnetn"

#指定子网

$subnetname = "default"

#指定公网IP名称

$publicipname = $vmname+"pip"

#指定nsg名称

$nsgname = $vmname+"-nsg"

#指定网卡名称

$nicname = $vmname+"nic"

#指定虚拟机磁盘名称

$osdiskname = $vmname + "-osdisk"

#指定OS磁盘缓存类型

$osdiskcaching = "ReadWrite"

#指定公网IP分配方式

$publicipallocationmethod = "Dynamic"

#指定创建机器的image文件位置

$sourceimageurl = "https://hlmrgstoragen.blob.core.chinacloudapi.cn/vhdscopy/hlmn4sysclocap-os-2017-09-21-2CE40CEE.vhd"

#指定新建机器系统盘存放位置

$osdiskurl = "https://hlmrgstoragen.blob.core.chinacloudapi.cn/vhds/"+$osdiskname+".vhd"

#查看Subnet

$vnet = Get-AzureRmVirtualNetwork -Name $vnetname -ResourceGroupName $resourceGroup

$subnet = Get-AzureRmVirtualNetworkSubnetConfig -Name $subnetname -VirtualNetwork $vnet

#创建一个公网IP地址

$publicIP = New-AzureRmPublicIpAddress -Name $publicipname -ResourceGroupName $resourceGroup -Location $location -AllocationMethod $publicipallocationmethod -IpAddressVersion IPv4 –Force

#创建nsg安全规则

$nsgrule = New-AzureRmNetworkSecurityRuleConfig -Name "default-allow-rdp" -Description "Allow RDP" -Access Allow -Protocol Tcp -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389

$nsg = New-AzureRmNetworkSecurityGroup -Name $nsgname -ResourceGroupName $resourceGroup -Location $location -SecurityRules $nsgrule

#创建网卡

$nic = New-AzureRmNetworkInterface -Name $nicname -ResourceGroupName $resourceGroup -Location $location -SubnetId $subnet.Id -PublicIpAddressId $publicIP.Id -NetworkSecurityGroupId $nsg.Id

#设置用户名及密码

$credential = Get-Credential -Message "Type the name and password of the local administrator account."

#生成虚拟机的配置

$vmconfig = New-AzureRmVMConfig -VMName $vmname -VMSize Standard_A2 | Set-AzureRmVMOperatingSystem -Windows -ComputerName $vmname -Credential $credential -ProvisionVMAgent -EnableAutoUpdate | Set-AzureRmVMOSDisk -Name $osdiskname -VhdUri $osdiskurl -SourceImageUri $sourceimageurl -Caching $osdiskcaching -CreateOption FromImage -Windows | Add-AzureRmVMNetworkInterface -Id $nic.Id -Primary

#创建虚拟机

New-AzureRmVM -ResourceGroupName $resourceGroup -Location $location -VM $vmconfig

所有的脚本命令如下:

$vmname = "hlmsysr2n5"
$resourceGroup = "hlmrgn"
$location = "China North"
$vnetname = "hlmrgvnetn"
$subnetname = "default"
$publicipname = $vmname+"pip"
$nsgname = $vmname+"-nsg"
$nicname = $vmname+"nic"
$osdiskname = $vmname + "-osdisk"
$osdiskcaching = "ReadWrite"
$publicipallocationmethod = "Dynamic"
$sourceimageurl = "https://hlmrgstoragen.blob.core.chinacloudapi.cn/vhdscopy/hlmn4sysclocap-os-2017-09-21-2CE40CEE.vhd"
$osdiskurl = "https://hlmrgstoragen.blob.core.chinacloudapi.cn/vhds/"+$osdiskname+".vhd"
$vnet = Get-AzureRmVirtualNetwork -Name $vnetname -ResourceGroupName $resourceGroup
$subnet = Get-AzureRmVirtualNetworkSubnetConfig -Name $subnetname -VirtualNetwork $vnet
$publicIP = New-AzureRmPublicIpAddress -Name $publicipname -ResourceGroupName $resourceGroup -Location $location -AllocationMethod $publicipallocationmethod -IpAddressVersion IPv4 –Force
$nsgrule = New-AzureRmNetworkSecurityRuleConfig -Name "default-allow-rdp" -Description "Allow RDP" -Access Allow -Protocol Tcp -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389
$nsg = New-AzureRmNetworkSecurityGroup -Name $nsgname -ResourceGroupName $resourceGroup -Location $location -SecurityRules $nsgrule
$nic = New-AzureRmNetworkInterface -Name $nicname -ResourceGroupName $resourceGroup -Location $location -SubnetId $subnet.Id -PublicIpAddressId $publicIP.Id -NetworkSecurityGroupId $nsg.Id
$credential = Get-Credential -Message "Type the name and password of the local administrator account."
$vmconfig = New-AzureRmVMConfig -VMName $vmname -VMSize Standard_A2 | Set-AzureRmVMOperatingSystem -Windows -ComputerName $vmname -Credential $credential -ProvisionVMAgent -EnableAutoUpdate | Set-AzureRmVMOSDisk -Name $osdiskname -VhdUri $osdiskurl -SourceImageUri $sourceimageurl -Caching $osdiskcaching -CreateOption FromImage -Windows | Add-AzureRmVMNetworkInterface -Id $nic.Id -Primary
New-AzureRmVM -ResourceGroupName $resourceGroup -Location $location -VM $vmconfig

命令执行成功截图:

创建完的虚拟机可以成功连接使用:

备注:

Linux虚拟机需要修改如下三点:

1.nsg规则对应的名称及端口

2.命令:Set-AzureRmVMOperatingSystem,的参数

3.命令:Set-AzureRmVMOSDisk,的参数

提供一个创建Linux机器的脚本命令:

$vmname = "hlmsys69n4"
$resourceGroup = "hlmrgn"
$location = "China North"
$vnetname = "hlmrgvnetn"
$subnetname = "default"
$publicipname = $vmname+"pip"
$nsgname = $vmname+"-nsg"
$nicname = $vmname+"nic"
$osdiskname = $vmname + "-osdisk"
$osdiskcaching = "ReadWrite"
$publicipallocationmethod = "Dynamic"
$sourceimageurl = "https://hlmrgstoragen.blob.core.chinacloudapi.cn/vhdscopy/hlm69n4wadclocap-os-2017-09-25-723993A1.vhd"
$osdiskurl = "https://hlmrgstoragen.blob.core.chinacloudapi.cn/vhds/"+$osdiskname+".vhd"
$vnet = Get-AzureRmVirtualNetwork -Name $vnetname -ResourceGroupName $resourceGroup
$subnet = Get-AzureRmVirtualNetworkSubnetConfig -Name $subnetname -VirtualNetwork $vnet
$publicIP = New-AzureRmPublicIpAddress -Name $publicipname -ResourceGroupName $resourceGroup -Location $location -AllocationMethod $publicipallocationmethod -IpAddressVersion IPv4 –Force
$nsgrule = New-AzureRmNetworkSecurityRuleConfig -Name "default-allow-ssh" -Description "Allow SSH" -Access Allow -Protocol Tcp -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 22
$nsg = New-AzureRmNetworkSecurityGroup -Name $nsgname -ResourceGroupName $resourceGroup -Location $location -SecurityRules $nsgrule
$nic = New-AzureRmNetworkInterface -Name $nicname -ResourceGroupName $resourceGroup -Location $location -SubnetId $subnet.Id -PublicIpAddressId $publicIP.Id -NetworkSecurityGroupId $nsg.Id
$credential = Get-Credential -Message "Type the name and password of the local administrator account."
$vmconfig = New-AzureRmVMConfig -VMName $vmname -VMSize Standard_A2 | Set-AzureRmVMOperatingSystem -Linux -ComputerName $vmname -Credential $credential | Set-AzureRmVMOSDisk -Name $osdiskname -VhdUri $osdiskurl -SourceImageUri $sourceimageurl -Caching $osdiskcaching -CreateOption FromImage -Linux | Add-AzureRmVMNetworkInterface -Id $nic.Id -Primary
New-AzureRmVM -ResourceGroupName $resourceGroup -Location $location -VM $vmconfig

成功执行截图:

创建完的虚拟机可以成功连接使用:

备注:

使用Image创建虚拟机时,Image可以重复使用。

Azure Powershell使用已有Image创建ARM非托管磁盘虚拟机的更多相关文章

  1. 捕获arm非托管磁盘虚拟机,并进行还原

    背景:非托管磁盘虚拟机"hlmcen69n1",附加了一块100GB的数据磁盘.由于arm非托管磁盘机器无法通过Portal界面直接"Capture",故只能通 ...

  2. Azure CLI2.0 捕获Linux ARM非托管磁盘虚拟机并创建ARM托管磁盘虚拟机

    1.系统内部取消预配VM,创建了测试文件目录及文件:hlm20180904/ hlm20180904.txt 2.使用CLI2.0创建VM映像 a.登陆CLI2.0 备注:在 Azure 中国区使用 ...

  3. Azure ARM (20) 将非托管磁盘虚拟机(Unmanage Disk),迁移成托管磁盘虚拟机(Manage Disk)

    <Windows Azure Platform 系列文章目录> PowerShell我已经提交到GitHub: https://github.com/leizhang1984/AzureC ...

  4. Azure Powershell使用已有特殊化非托管磁盘创建ARM虚拟机

    生成已有特殊化非托管磁盘的方法主要有如下两种: 1.使用StorageExplorer存储管理工具,复制特殊化磁盘到一个新的容器下 2.New Portal中删除虚拟机,默认vhd文件会保留在存储账号 ...

  5. 捕获arm托管磁盘虚拟机,并进行还原

    背景:托管磁盘虚拟机"hlmma69n2",附加了一块100GB的数据磁盘.可以通过Portal管理界面直接捕获该虚拟机并进行还原,详情见如下步骤: 1.在虚拟机内部执行一般化的操 ...

  6. Azure上采用Powershell从已有的VHD创建VM

    刚刚的一篇Blog采用Json Template的方式从已有的VHD创建了一台新的VM.由于Json Template封装的比较好,可以改的内容不多. 下面将介绍通过用Powershell来从已有的V ...

  7. Azure Powershell script检测登陆并部署ARM Template

    本文简单提供了一个Azure powershell脚本,能实现如下功能 Azure (China)账户是否已经登陆了,如果没登陆,会提示你登陆. 要创建的资源组是否存在,存在的话不再创建,直接部署te ...

  8. Azure ARM (9) 创建ARM模式下的虚拟机网络

    <Windows Azure Platform 系列文章目录> 笔者在之前几章内容中,创建了ARM Resource Group,然后在这个ARM Resource Group下创建Azu ...

  9. Azure Powershell部署使用平台映像的托管Windows VM及相关问题说明

    1.脚本背景信息: a.使用平台镜像(Windows Server 2016 zh-cn)部署高性能托管磁盘虚拟机 b.虚拟机默认不开启Boot诊断 c.添加三块已经创建好的数据磁盘 d.添加已创建好 ...

随机推荐

  1. python 用户登录

    要求: 1.用户在登录之前要判断密码文件是否已经是锁定状态,如果是提示不让登录 2.登录用户密码输入错误3次,就锁定改用户,并更新文件内容 3.登录正确,提示欢迎登录信息 data.txt 文件内容: ...

  2. Go 到底有没有引用传参(对比 C++ )

    Go 到底有没有引用传参(对比 C++ ) C++ 中三种参数传递方式 值传递: 最常见的一种传参方式,函数的形参是实参的拷贝,函数中改变形参不会影响到函数外部的形参.一般是函数内部修改参数而又不希望 ...

  3. python+selenium自动化软件测试(第8章) :多线程

    前戏:线程的基础 运行多个线程同时运行几个不同的程序类似,但具有以下优点:进程内共享多线程与主线程相同的数据空间,如果他们是独立的进程,可以共享信息或互相沟通更容易.线程有时称为轻量级进程,他们并不需 ...

  4. 两台主机之间单向Ping不通的问题

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } p.p2 ...

  5. Maven生成可以直接运行的jar包的多种方式

    Maven可以使用mvn package指令对项目进行打包,如果使用Java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in ...

  6. 搭建DNS服务

    author:JevonWei 版权声明:原创作品 修改/var/named/下的数据库文件的数据时,需手动修改serial序列号 UDP协议53端口用于用户DNS查询,TCP协议53端口用于主从DN ...

  7. Spring+mybatis 实现aop数据库读写分离,多数据库源配置

    在数据库层面大都采用读写分离技术,就是一个Master数据库,多个Slave数据库.Master库负责数据更新和实时数据查询,Slave库当然负责非实时数据查询.因为在实际的应用中,数据库都是读多写少 ...

  8. HTTPS静态服务搭建过程详解

    HTTPS服务对于一个前端开发者来说是一个天天打招呼的老伙计了,但是之前我跟HTTPS打交道的场景一直是抓包,自己没有亲自搭建过HTTPS服务,对HTTPS的底层知识也是一知半解.最近正好遇到一个用户 ...

  9. 汽车VIN码识别适用于什么行业

    在您看完之前的文章知道了VIN码识别的原理,现在跟大家分享一下汽车VIN码识别的应用场景吧 汽车VIN码不仅在制造.销售.保养.保险.交易环节会需要录入汽车的VIN码,在交通事故处理中,作为汽车身份唯 ...

  10. c#反射执行静态方法

    发射调用System.Environment.Exit(0)示例: System.Reflection.Assembly ass = System.Reflection.Assembly.LoadFi ...