从托管映像创建 VM
可以从 Azure 中托管的 VM 映像创建多个 VM。 托管 VM 映像包含创建 VM 所需的信息,包括 OS 和数据磁盘。 构成映像的 VHD(包括 OS 磁盘和任何数据磁盘)存储为托管磁盘。
先决条件
必须已创建托管 VM 映像以用于创建新 VM。
请确保具有最新版本的 AzureRM.Compute 和 AzureRM.Network PowerShell 模块。 以管理员身份打开 PowerShell 提示符,并运行以下命令进行安装。
Install-Module AzureRM.Compute,AzureRM.Network
有关详细信息,请参阅 Azure PowerShell 版本控制。
收集有关映像的信息
首先需要收集有关映像的基本信息并创建映像的变量。 此示例使用“中国北部”位置的 myResourceGroup 资源组中名为 myImage 的托管 VM 映像。
$rgName = "myResourceGroup"
$location = "China North"
$imageName = "myImage"
$image = Get-AzureRMImage -ImageName $imageName -ResourceGroupName $rgName
创建虚拟网络
创建虚拟网络的 vNet 和子网。
创建子网。 此示例创建名为 mySubnet 的子网,其地址前缀为 10.0.0.0/24。
PowerShell复制$subnetName = "mySubnet"
$singleSubnet = New-AzureRmVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24
创建虚拟网络。 此示例创建名为 myVnet 的虚拟网络,其地址前缀为 10.0.0.0/16。
PowerShell复制$vnetName = "myVnet"
$vnet = New-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $rgName -Location $location `
-AddressPrefix 10.0.0.0/16 -Subnet $singleSubnet
创建公共 IP 地址和网络接口
若要与虚拟网络中的虚拟机通信,需要一个 公共 IP 地址 和网络接口。
创建公共 IP 地址。 此示例创建名为 myPip的公共 IP 地址。
PowerShell复制$ipName = "myPip"
$pip = New-AzureRmPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $location `
-AllocationMethod Dynamic
创建 NIC。 此示例创建名为 myNic的 NIC。
PowerShell复制$nicName = "myNic"
$nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $location `
-SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id
创建网络安全组和 RDP 规则
若要使用 RDP 登录到 VM,需要创建一个允许在端口 3389 上进行 RDP 访问的网络安全规则 (NSG)。
此示例创建名为 myNsg 的 NSG,其中包含一个允许通过端口 3389 传输 RDP 流量的、名为 myRdpRule 的规则。 有关 NSG 的详细信息,请参阅 Opening ports to a VM in Azure using PowerShell(使用 PowerShell 在 Azure 中打开 VM 端口)。
$nsgName = "myNsg"
$ruleName = "myRdpRule"
$rdpRule = New-AzureRmNetworkSecurityRuleConfig -Name $ruleName -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
为虚拟网络创建变量
为完成的虚拟网络创建变量。
$vnet = Get-AzureRmVirtualNetwork -ResourceGroupName $rgName -Name $vnetName
获取 VM 的凭据
以下 cmdlet 将打开一个窗口,需在其中输入远程访问 VM 所用的本地管理员帐户的新用户名和密码。
$cred = Get-Credential
设置 VM 名称和计算机名称的变量以及 VM 的大小
创建 VM 名称与计算机名称的变量。 此示例将 VM 名称设置为 myVM,将计算机名称设置为 myComputer。
PowerShell复制$vmName = "myVM"
$computerName = "myComputer"
设置虚拟机的大小。 此示例创建 Standard_DS1_v2 大小的 VM。 有关详细信息,请参阅 VM 大小文档。
PowerShell复制$vmSize = "Standard_DS1_v2"
向 VM 配置中添加 VM 的名称和大小。
$vm = New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize
将 VM 映像设置为新 VM 的源映像
使用托管 VM 映像的 ID 设置源映像。
$vm = Set-AzureRmVMSourceImage -VM $vm -Id $image.Id
设置 OS 配置并添加 NIC。
输入 OS 磁盘的存储类型(PremiumLRS 或 StandardLRS)和大小。 此示例将帐户类型设置为 PremiumLRS,将磁盘大小设置为 128 GB,将磁盘缓存设置为 ReadWrite。
$vm = Set-AzureRmVMOSDisk -VM $vm -StorageAccountType PremiumLRS -DiskSizeInGB 128 `
-CreateOption FromImage -Caching ReadWrite
$vm = Set-AzureRmVMOperatingSystem -VM $vm -Windows -ComputerName $computerName `
-Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm = Add-AzureRmVMNetworkInterface -VM $vm -Id $nic.Id
创建 VM
使用在 $vm 变量中生成和存储的配置创建新 VM。
New-AzureRmVM -VM $vm -ResourceGroupName $rgName -Location $location
验证是否已创建 VM
完成后,应会在 Azure 门户的“浏览” > “虚拟机”下看到新建的 VM,也可以使用以下 PowerShell 命令查看该 VM:
$vmList = Get-AzureRmVM -ResourceGroupName $rgName
$vmList.Name
后续步骤
若要使用 Azure PowerShell 管理新虚拟机,请参阅使用 Azure PowerShell 模块创建和管理 Windows VM。
立即访问http://market.azure.cn
从托管映像创建 VM的更多相关文章
- 在 Azure 中创建通用 VM 的托管映像
可以从在存储帐户中存储为托管磁盘或非托管磁盘的通用 VM 中创建托管映像资源. 然后可以使用该映像创建多个 VM. 使用 Sysprep 通用化 Windows VM Sysprep 将删除所有个人帐 ...
- 在 Azure VM 中使用应用商店映像创建 HPC Pack 群集的头节点
使用 Azure 应用商店和 Azure 门户中的 Microsoft HPC Pack 2012 R2 虚拟机映像创建 HPC 群集的头节点. 此 HPC Pack VM 映像基于预安装了 HPC ...
- openstack上创建vm实例后,状态为ERROR问题解决
问题说明:在openstack上创建虚拟机,之前已顺利创建了n个centos6.8镜像的vm现在用ubuntu14.04镜像创建vm,发现vm创建后的状态为ERROR! 1)终端命令行操作vm创建 [ ...
- Azure Virtual Machine 之 如何利用Management Class Libraries 创建VM
之前发的blog简单的介绍了如何使用Management Class Libraries 来控制Azure platform. 但由于官方并没有提供文档,所以我们只能够通过自己研究来摸索使用该类库的方 ...
- 由于挂载的nfs存储目录掉下线,导致创建VM时,无法创建
具体错误,如下截图 重新挂载存储后,在创建VM,将成功
- Azure上采用Json Template从已有的VHD创建VM
从已有的VHD创建VM是使用Azure中经常要操作的内容. 本文将介绍如何采用Json Template从已经有的VHD创建VM. 一.准备VHD 在我的Azure账户中选择一台VM,如下图: 查看其 ...
- qemu创建vm和vcpu进入kvm的流程
kvm是一个内核模块,它实现了一个/dev/kvm的字符设备来与用户进行交互,通过调用一系列ioctl函数可以实现qemu和kvm之间的切换. 1.qemu发起KVM_CREATE_VM的ioctl创 ...
- CommandoVM-虚拟机映像文件 | VM打开直接用
呵呵!自从火眼发布了这个CommandoVM,想必大家应该都挺激动,然而实际操作一下,基本炸裂-- 因为并没有给类似于kali这种直接安装的现成镜像,而是要通过github的脚本去完全网络安装 实际操 ...
- Azure上采用Powershell从已有的VHD创建VM
刚刚的一篇Blog采用Json Template的方式从已有的VHD创建了一台新的VM.由于Json Template封装的比较好,可以改的内容不多. 下面将介绍通过用Powershell来从已有的V ...
随机推荐
- [Java初探08]__简单学习Java类和对象
前言 在前面的学习中,我们对面向对象的编程思想有了一个基本的了解,并且简单的了解了类和对象的定义.那么类和对象在Java语言中是如何表现的,这次,就从实际出发,学习一下一下类和对象在Java语言中的使 ...
- unsigned/signed int/char类型表示的数值范围
一个32位的signed int类型整数表示的范围:-2^31~2^31-1 一个32位的unsigned int类型整数表示的范围: 0~2^32-1 一个8位的signed char类型整数表示的 ...
- UIView动画上
主要参考:http://blog.csdn.net/huifeidexin_1/article/details/7597868 http://www.2cto.com/kf/201409/33566 ...
- syslog - 日志文件详解
日志文件,是linux最为重要的记录文件,记录着日常的操作. 我们在linux编程的时候,通常会使用日志文件记录操作和信息,日志系统提供了我们几个API接口供调用 1. API void openlo ...
- WPF文字修饰——上、中、下划线与基线
我们知道,文字的修饰包括:空心字.立体字.划线字.阴影字.加粗.倾斜等.这里只说划线字的修饰方式,按划线的位置,我们可将之分为:上划线.中划线.基线与下划线.如图: 从上至下,分别为上划线(Overl ...
- 【ibatis】IBatis的SQL批量操作
1.Ibatis批量添加(传入class的list即可) <insert id="Add" resultMap="Select" parameterCla ...
- JdbcTemplate完全学习
概述 Spring JDBC抽象框架core包提供了JDBC模板类,其中JdbcTemplate是core包的核心类,所以其他模板类都是基于它封装完成的,JDBC模板类是第一种工作模式. JdbcTe ...
- SSM(一):spring-ioc
一.java代理模式 java代理模式是ioc的前置知识.代理模式非常简单,看代码就一目了然了. public interface role { public void makeMoney(); } ...
- redis-java基础操作
安装 windows版的Redis,打开即可,默认端口6379 导入两个jar包 commons-pool2-2.3.jar jedis-2.7.0.jar 一 写配置文件 redis.setM ...
- Dijkstra和Prim算法的区别
Dijkstra和Prim算法的区别 1.先说说prim算法的思想: 众所周知,prim算法是一个最小生成树算法,它运用的是贪心原理(在这里不再证明),设置两个点集合,一个集合为要求的生成树的点集合A ...