可以從 Azure 中托管的 VM 映像創(chuàng)建多個(gè) VM。 托管 VM 映像包含創(chuàng)建 VM 所需的信息,包括 OS 和數(shù)據(jù)磁盤。 構(gòu)成映像的 VHD(包括 OS 磁盤和任何數(shù)據(jù)磁盤)存儲為托管磁盤。
先決條件
必須已創(chuàng)建托管 VM 映像以用于創(chuàng)建新 VM。
請確保具有最新版本的 AzureRM.Compute 和 AzureRM.Network PowerShell 模塊。 以管理員身份打開 PowerShell 提示符,并運(yùn)行以下命令進(jìn)行安裝。
PowerShell復(fù)制
Install-ModuleAzureRM.Compute,AzureRM.Network
有關(guān)詳細(xì)信息,請參閱Azure PowerShell 版本控制。
收集有關(guān)映像的信息
首先需要收集有關(guān)映像的基本信息并創(chuàng)建映像的變量。 此示例使用“中國北部”位置的 myResourceGroup 資源組中名為 myImage 的托管 VM 映像。
PowerShell復(fù)制
$rgName="myResourceGroup"$location="China North"$imageName="myImage"$image=Get-AzureRMImage-ImageName$imageName-ResourceGroupName$rgName
創(chuàng)建虛擬網(wǎng)絡(luò)
創(chuàng)建虛擬網(wǎng)絡(luò)的 vNet 和子網(wǎng)。
創(chuàng)建子網(wǎng)。 此示例創(chuàng)建名為mySubnet的子網(wǎng),其地址前綴為10.0.0.0/24。
PowerShell復(fù)制
$subnetName="mySubnet"$singleSubnet=New-AzureRmVirtualNetworkSubnetConfig-Name$subnetName-AddressPrefix10.0.0.0/24
創(chuàng)建虛擬網(wǎng)絡(luò)。 此示例創(chuàng)建名為myVnet的虛擬網(wǎng)絡(luò),其地址前綴為10.0.0.0/16。
PowerShell復(fù)制
$vnetName="myVnet"$vnet=New-AzureRmVirtualNetwork-Name$vnetName-ResourceGroupName$rgName-Location$location`-AddressPrefix10.0.0.0/16-Subnet$singleSubnet
創(chuàng)建公共 IP 地址和網(wǎng)絡(luò)接口
若要與虛擬網(wǎng)絡(luò)中的虛擬機(jī)通信,需要一個(gè)公共 IP 地址和網(wǎng)絡(luò)接口。
創(chuàng)建公共 IP 地址。 此示例創(chuàng)建名為myPip的公共 IP 地址。
PowerShell復(fù)制
$ipName="myPip"$pip=New-AzureRmPublicIpAddress-Name$ipName-ResourceGroupName$rgName-Location$location`-AllocationMethodDynamic
創(chuàng)建 NIC。 此示例創(chuàng)建名為myNic的 NIC。
PowerShell復(fù)制
$nicName="myNic"$nic=New-AzureRmNetworkInterface-Name$nicName-ResourceGroupName$rgName-Location$location`-SubnetId$vnet.Subnets[0].Id-PublicIpAddressId$pip.Id
創(chuàng)建網(wǎng)絡(luò)安全組和 RDP 規(guī)則
若要使用 RDP 登錄到 VM,需要創(chuàng)建一個(gè)允許在端口 3389 上進(jìn)行 RDP 訪問的網(wǎng)絡(luò)安全規(guī)則 (NSG)。
此示例創(chuàng)建名為myNsg的 NSG,其中包含一個(gè)允許通過端口 3389 傳輸 RDP 流量的、名為myRdpRule的規(guī)則。 有關(guān) NSG 的詳細(xì)信息,請參閱Opening ports to a VM in Azure using PowerShell(使用 PowerShell 在 Azure 中打開 VM 端口)。
PowerShell復(fù)制
$nsgName="myNsg"$ruleName="myRdpRule"$rdpRule=New-AzureRmNetworkSecurityRuleConfig-Name$ruleName-Description"Allow RDP"`-AccessAllow-ProtocolTcp-DirectionInbound-Priority110`-SourceAddressPrefixInternet-SourcePortRange* `-DestinationAddressPrefix*-DestinationPortRange3389$nsg=New-AzureRmNetworkSecurityGroup-ResourceGroupName$rgName-Location$location`-Name$nsgName-SecurityRules$rdpRule
為虛擬網(wǎng)絡(luò)創(chuàng)建變量
為完成的虛擬網(wǎng)絡(luò)創(chuàng)建變量。
PowerShell復(fù)制
$vnet=Get-AzureRmVirtualNetwork-ResourceGroupName$rgName-Name$vnetName
獲取 VM 的憑據(jù)
以下 cmdlet 將打開一個(gè)窗口,需在其中輸入遠(yuǎn)程訪問 VM 所用的本地管理員帳戶的新用戶名和密碼。
PowerShell復(fù)制
$cred=Get-Credential
設(shè)置 VM 名稱和計(jì)算機(jī)名稱的變量以及 VM 的大小
創(chuàng)建 VM 名稱與計(jì)算機(jī)名稱的變量。 此示例將 VM 名稱設(shè)置為myVM,將計(jì)算機(jī)名稱設(shè)置為myComputer。
PowerShell復(fù)制
$vmName="myVM"$computerName="myComputer"
設(shè)置虛擬機(jī)的大小。 此示例創(chuàng)建Standard_DS1_v2大小的 VM。 有關(guān)詳細(xì)信息,請參閱VM 大小文檔。
PowerShell復(fù)制
$vmSize="Standard_DS1_v2"
向 VM 配置中添加 VM 的名稱和大小。
PowerShell復(fù)制
$vm=New-AzureRmVMConfig-VMName$vmName-VMSize$vmSize
將 VM 映像設(shè)置為新 VM 的源映像
使用托管 VM 映像的 ID 設(shè)置源映像。
PowerShell復(fù)制
$vm=Set-AzureRmVMSourceImage-VM$vm-Id$image.Id
設(shè)置 OS 配置并添加 NIC。
輸入 OS 磁盤的存儲類型(PremiumLRS 或 StandardLRS)和大小。 此示例將帳戶類型設(shè)置為PremiumLRS,將磁盤大小設(shè)置為128 GB,將磁盤緩存設(shè)置為ReadWrite。
PowerShell復(fù)制
$vm=Set-AzureRmVMOSDisk-VM$vm-StorageAccountTypePremiumLRS-DiskSizeInGB128`-CreateOption FromImage-CachingReadWrite$vm=Set-AzureRmVMOperatingSystem-VM$vm-Windows-ComputerName$computerName`-Credential$cred-ProvisionVMAgent-EnableAutoUpdate$vm=Add-AzureRmVMNetworkInterface-VM$vm-Id$nic.Id
創(chuàng)建 VM
使用在$vm變量中生成和存儲的配置創(chuàng)建新 VM。
PowerShell復(fù)制
New-AzureRmVM-VM$vm-ResourceGroupName$rgName-Location$location
驗(yàn)證是否已創(chuàng)建 VM
完成后,應(yīng)會在Azure 門戶的“瀏覽” > “虛擬機(jī)”下看到新建的 VM,也可以使用以下 PowerShell 命令查看該 VM:
PowerShell復(fù)制
$vmList=Get-AzureRmVM-ResourceGroupName$rgName$vmList.Name
后續(xù)步驟
若要使用 Azure PowerShell 管理新虛擬機(jī),請參閱使用 Azure PowerShell 模塊創(chuàng)建和管理 Windows VM。立即訪問http://market.azure.cn