Azure Powershell使用已有Image创建ARM非托管磁盘虚拟机
生成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非托管磁盘虚拟机的更多相关文章
- 捕获arm非托管磁盘虚拟机,并进行还原
背景:非托管磁盘虚拟机"hlmcen69n1",附加了一块100GB的数据磁盘.由于arm非托管磁盘机器无法通过Portal界面直接"Capture",故只能通 ...
- Azure CLI2.0 捕获Linux ARM非托管磁盘虚拟机并创建ARM托管磁盘虚拟机
1.系统内部取消预配VM,创建了测试文件目录及文件:hlm20180904/ hlm20180904.txt 2.使用CLI2.0创建VM映像 a.登陆CLI2.0 备注:在 Azure 中国区使用 ...
- Azure ARM (20) 将非托管磁盘虚拟机(Unmanage Disk),迁移成托管磁盘虚拟机(Manage Disk)
<Windows Azure Platform 系列文章目录> PowerShell我已经提交到GitHub: https://github.com/leizhang1984/AzureC ...
- Azure Powershell使用已有特殊化非托管磁盘创建ARM虚拟机
生成已有特殊化非托管磁盘的方法主要有如下两种: 1.使用StorageExplorer存储管理工具,复制特殊化磁盘到一个新的容器下 2.New Portal中删除虚拟机,默认vhd文件会保留在存储账号 ...
- 捕获arm托管磁盘虚拟机,并进行还原
背景:托管磁盘虚拟机"hlmma69n2",附加了一块100GB的数据磁盘.可以通过Portal管理界面直接捕获该虚拟机并进行还原,详情见如下步骤: 1.在虚拟机内部执行一般化的操 ...
- Azure上采用Powershell从已有的VHD创建VM
刚刚的一篇Blog采用Json Template的方式从已有的VHD创建了一台新的VM.由于Json Template封装的比较好,可以改的内容不多. 下面将介绍通过用Powershell来从已有的V ...
- Azure Powershell script检测登陆并部署ARM Template
本文简单提供了一个Azure powershell脚本,能实现如下功能 Azure (China)账户是否已经登陆了,如果没登陆,会提示你登陆. 要创建的资源组是否存在,存在的话不再创建,直接部署te ...
- Azure ARM (9) 创建ARM模式下的虚拟机网络
<Windows Azure Platform 系列文章目录> 笔者在之前几章内容中,创建了ARM Resource Group,然后在这个ARM Resource Group下创建Azu ...
- Azure Powershell部署使用平台映像的托管Windows VM及相关问题说明
1.脚本背景信息: a.使用平台镜像(Windows Server 2016 zh-cn)部署高性能托管磁盘虚拟机 b.虚拟机默认不开启Boot诊断 c.添加三块已经创建好的数据磁盘 d.添加已创建好 ...
随机推荐
- Java6和Java8在Windows上共存
0x00 需求 最近在做一个Android的项目,一开始安装的是Java8用于项目的开发.但是在项目后期需要用到drozer用于检测项目的安全性,要搭建drozer的测试环境必须要使用Java6,否则 ...
- 修改windows user 文件夹中的用户名
假设我们需要将帐户A改名为B.首先我们需要用另一个管理员帐户C登陆系统. 1.在控制面板-〉用户帐户中将帐户A改名为B. 2.打开C:/Users或"用户"文件夹,将文件夹A重命名 ...
- TensorFlow框架(5)之机器学习实践
1. Iris data set Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理.Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集.数据集包含150个数据集,分为3类, ...
- redis 安装及启动关闭
1.redis下载 方式1:直接去官网下载 https://redis.io/download 方式2:通过命令下载 wget http://download.redis.io/releases/re ...
- 使用jmeter进行批量数据创建
背景: 测试环境需要创建大量的测试数据,进行功能和性能的测试 测试数据创建接口是HTTP请求方式 测试数据要求不同类型的数据,要有字段进行关联,且单据的编号在DB中唯一不可重复,此外测试数据的时间类参 ...
- [js高手之路]深入浅出webpack教程系列4-插件使用之html-webpack-plugin配置(上)
还记得我们上文中的index.html文件吗? 那里面的script标签还是写死的index.bundle.js文件,那么怎么把他们变成动态的index.html文件,这个动态生成的index.htm ...
- 从送外卖到建站售主机还有共享自行车说起-2017年8月江西IDC排行榜与发展报告
曾几何时,送外卖,这样的"低技术含量"工作,很难被互联网公司看上,直到百度将其当作连接终端用户与大数据的管道. 同样,销售主机域名和建站业务,本也是"微小体量" ...
- poj 3613 floyd + 快速幂
题意:本题的大意就是问从S 到 T 经过边得个数恰为k的最短路是多少. 思路:对于邻接矩阵每一次floyd求的是每个点间的最短距离,则n次floyd就是每个点间n条路的最短距离(可以重复边); 但是由 ...
- CSS3弹性盒模型 display:box
刚开始做网页时就有一个困惑,为什么display:block只能垂直排列,如果要水平排列就要使用float:left等方式.这种方法最难受的当然是当子元素的数量改变时,需要去修改子元素的宽度使重新适应 ...
- Spring mvc 转发、重定向
spring控制器最后返回一个ModelAndView(urlName),其中urNamel可以是一个视图名称,由视图解析器负责解析后将响应流写回客户端;也可以通过redirect/forward:u ...