上傳通用化 VHD 并使用它在 Azure 中創(chuàng)建新 VM

本主題逐步講解如何使用 PowerShell 將通用化 VM 的 VHD 上傳到 Azure、從該 VHD 創(chuàng)建映像,然后從該映像創(chuàng)建新 VM。 可以上傳從本地虛擬化工具或其他云導(dǎo)出的 VHD。 對(duì)新的 VM 使用托管磁盤(pán)可以簡(jiǎn)化 VM 管理,在將 VM 置于可用性集中時(shí)提供更好的可用性。

若要使用示例腳本,請(qǐng)參閱將 VHD 上傳到 Azure 并創(chuàng)建新的 VM 的示例腳本

開(kāi)始之前

將任何 VHD 上傳到 Azure 之前,應(yīng)該遵循準(zhǔn)備要上傳到 Azure 的 Windows VHD 或 VHDX

開(kāi)始遷移到托管磁盤(pán)之前,請(qǐng)先查看規(guī)劃遷移到托管磁盤(pán)。

請(qǐng)確保有最新版本的 AzureRM.Compute PowerShell 模塊。 運(yùn)行以下命令來(lái)安裝該模塊。

PowerShell復(fù)制

Install-ModuleAzureRM.Compute-RequiredVersion2.6.0

有關(guān)詳細(xì)信息,請(qǐng)參閱Azure PowerShell 版本控制。

使用 Sysprep 通用化 Windows VM

Sysprep 將刪除所有個(gè)人帳戶信息及其他某些數(shù)據(jù),并準(zhǔn)備好要用作映像的計(jì)算機(jī)。 有關(guān) Sysprep 的詳細(xì)信息,請(qǐng)參閱如何使用 Sysprep:簡(jiǎn)介。

確保 Sysprep 支持計(jì)算機(jī)上運(yùn)行的服務(wù)器角色。 有關(guān)詳細(xì)信息,請(qǐng)參閱Sysprep Support for Server Roles

Important

如果在首次將 VHD 上傳到 Azure 之前運(yùn)行 Sysprep,請(qǐng)確保先準(zhǔn)備好 VM,然后再運(yùn)行 Sysprep。

登錄到 Windows 虛擬機(jī)。

以管理員身份打開(kāi)“命令提示符”窗口。 將目錄切換到%windir%\system32\sysprep,然后運(yùn)行sysprep.exe。

在“系統(tǒng)準(zhǔn)備工具”對(duì)話框中,選擇“進(jìn)入系統(tǒng)全新體驗(yàn)(OOBE)”,確保已選中“通用化”復(fù)選框。

在“關(guān)機(jī)選項(xiàng)”中選擇“關(guān)機(jī)”。

單擊“確定”。

在 Sysprep 完成時(shí),它會(huì)關(guān)閉虛擬機(jī)。 不要重新啟動(dòng) VM。

登錄到 Azure

如果尚未安裝 Azure PowerShell 1.4 版或更高版本,請(qǐng)閱讀如何安裝和配置 Azure PowerShell。

打開(kāi) Azure PowerShell 并登錄到 Azure 帳戶。 此時(shí)會(huì)打開(kāi)一個(gè)彈出窗口讓輸入 Azure 帳戶憑據(jù)。

PowerShell復(fù)制

Login-AzureRmAccount-EnvironmentNameAzureChinaCloud

獲取可用訂閱的訂閱 ID。

PowerShell復(fù)制

Get-AzureRmSubscription

使用訂閱 ID 設(shè)置正確的訂閱。 將替換為正確訂閱的 ID。

PowerShell復(fù)制

Select-AzureRmSubscription-SubscriptionId""

獲取存儲(chǔ)帳戶

需要在 Azure 中創(chuàng)建存儲(chǔ)帳戶來(lái)存儲(chǔ)上傳的 VM 映像。 可以使用現(xiàn)有存儲(chǔ)帳戶,也可以創(chuàng)建新存儲(chǔ)帳戶。

如果要使用 VHD 為 VM 創(chuàng)建托管磁盤(pán),存儲(chǔ)帳戶位置必須與要?jiǎng)?chuàng)建 VM 的位置相同。

顯示可用的存儲(chǔ)帳戶,請(qǐng)鍵入:

PowerShell復(fù)制

Get-AzureRmStorageAccount

如果要使用現(xiàn)有存儲(chǔ)帳戶,請(qǐng)轉(zhuǎn)到上傳 VM 映像部分。

若要?jiǎng)?chuàng)建存儲(chǔ)帳戶,請(qǐng)執(zhí)行以下步驟:

需要應(yīng)在其中創(chuàng)建存儲(chǔ)帳戶的資源組的名稱。 若要查找訂閱中的所有資源組,請(qǐng)鍵入:

PowerShell復(fù)制

Get-AzureRmResourceGroup

若要在中國(guó)東部區(qū)域中創(chuàng)建名為myResourceGroup的資源組,請(qǐng)鍵入:

PowerShell復(fù)制

New-AzureRmResourceGroup-NamemyResourceGroup-Location"China East"

使用New-AzureRmStorageAccountcmdlet 在此資源組中創(chuàng)建名為mystorageaccount的存儲(chǔ)帳戶:

PowerShell復(fù)制

New-AzureRmStorageAccount-ResourceGroupNamemyResourceGroup-Namemystorageaccount-Location"China East"`-SkuName"Standard_LRS"-Kind"Storage"

-SkuName 的有效值為:

Standard_LRS- 本地冗余存儲(chǔ)。

Standard_ZRS- 區(qū)域冗余存儲(chǔ)。

Standard_GRS- 異地冗余存儲(chǔ)。

Standard_RAGRS- 讀取訪問(wèn)權(quán)限異地冗余存儲(chǔ)。

Premium_LRS- 高級(jí)本地冗余存儲(chǔ)。

將 VHD 上傳到存儲(chǔ)帳戶

使用Add-AzureRmVhdcmdlet 將 VHD 上傳到存儲(chǔ)帳戶中的容器。 本示例將文件myVHD.vhd"C:\Users\Public\Documents\Virtual hard disks\"上傳到myResourceGroup資源組中名為mystorageaccount的存儲(chǔ)帳戶。 該文件將放入名為mycontainer的容器,新文件名為myUploadedVHD.vhd

PowerShell復(fù)制

$rgName="myResourceGroup"$urlOfUploadedImageVhd="https://mystorageaccount.blob.core.chinacloudapi.cn/mycontainer/myUploadedVHD.vhd"Add-AzureRmVhd-ResourceGroupName$rgName-Destination$urlOfUploadedImageVhd`-LocalFilePath"C:\Users\Public\Documents\Virtual hard disks\myVHD.vhd"

如果成功,會(huì)顯示類似于下面的響應(yīng):

PowerShell復(fù)制

MD5 hash is being calculatedforthe file C:\Users\Public\Documents\Virtual hard disks\myVHD.vhd.MD5 hash calculation is completed.Elapsed timeforthe operation:00:03:35Creating new page blob of size53687091712...Elapsed timeforupload:01:12:49LocalFilePath? ? ? ? ? DestinationUri---------------------------C:\Users\Public\Doc...? https://mystorageaccount.blob.core.chinacloudapi.cn/mycontainer/myUploadedVHD.vhd

完成執(zhí)行此命令可能需要一段時(shí)間,具體取決于網(wǎng)絡(luò)連接速度和 VHD 文件的大小

如果要使用上傳的 VHD 創(chuàng)建托管磁盤(pán)或新 VM,請(qǐng)保存目標(biāo) URI路徑供稍后使用。

用于上傳 VHD 的其他選項(xiàng)

也可以使用以下方法之一將 VHD 上傳到存儲(chǔ)帳戶:

AzCopy

Azure 存儲(chǔ)復(fù)制 Blob API

Azure 存儲(chǔ)資源管理器上傳 Blob

Storage Import/Export Service REST API Reference(存儲(chǔ)導(dǎo)入/導(dǎo)出服務(wù) REST API 參考)

如果預(yù)估上傳時(shí)間大于 7 天,建議使用導(dǎo)入/導(dǎo)出服務(wù)。 可根據(jù)數(shù)據(jù)大小和傳輸單位,利用DataTransferSpeedCalculator預(yù)估時(shí)間。 導(dǎo)入/導(dǎo)出可用于復(fù)制到標(biāo)準(zhǔn)存儲(chǔ)帳戶。 需要使用 AzCopy 等工具從標(biāo)準(zhǔn)存儲(chǔ)復(fù)制到高級(jí)存儲(chǔ)帳戶。

通過(guò)上傳的 VHD 創(chuàng)建托管映像

使用通用 OS VHD 創(chuàng)建托管映像。 將值替換為自己的信息。

首先,設(shè)置公共參數(shù):

PowerShell復(fù)制

$vmName="myVM"$computerName="myComputer"$vmSize="Standard_DS1_v2"$location="China East"$imageName="yourImageName"

使用通用 OS VHD 創(chuàng)建映像。

PowerShell復(fù)制

$imageConfig=New-AzureRmImageConfig-Location$location$imageConfig=Set-AzureRmImageOsDisk-Image$imageConfig-OsTypeWindows-OsStateGeneralized-BlobUri$urlOfUploadedImageVhd$image=New-AzureRmImage-ImageName$imageName-ResourceGroupName$rgName-Image$imageConfig

創(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,需要?jiǎng)?chuàng)建一個(gè)允許在端口 3389 上進(jìn)行 RDP 訪問(wèn)的網(wǎng)絡(luò)安全規(guī)則 (NSG)。

此示例創(chuàng)建名為myNsg的 NSG,其中包含一個(gè)允許通過(guò)端口 3389 傳輸 RDP 流量的、名為myRdpRule的規(guī)則。 有關(guān) NSG 的詳細(xì)信息,請(qǐng)參閱Opening ports to a VM in Azure using PowerShell(使用 PowerShell 在 Azure 中打開(kāi) 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 將打開(kāi)一個(gè)窗口,需在其中輸入遠(yuǎn)程訪問(wèn) VM 所用的本地管理員帳戶的新用戶名和密碼。

PowerShell復(fù)制

$cred=Get-Credential

將 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 磁盤(pán)的存儲(chǔ)類型(PremiumLRS 或 StandardLRS)和大小。 此示例將帳戶類型設(shè)置為PremiumLRS,將磁盤(pán)大小設(shè)置為128 GB,將磁盤(pán)緩存設(shè)置為ReadWrite。

PowerShell復(fù)制

$vm=Set-AzureRmVMOSDisk-VM$vm-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

使用存儲(chǔ)在$vm變量中的配置創(chuàng)建新 VM。

PowerShell復(fù)制

New-AzureRmVM-VM$vm-ResourceGroupName$rgName-Location$location

驗(yàn)證是否已創(chuàng)建 VM

完成后,應(yīng)會(huì)在Azure 門(mén)戶的“瀏覽” > “虛擬機(jī)”下看到新建的 VM,也可以使用以下 PowerShell 命令查看該 VM:

PowerShell復(fù)制

$vmList=Get-AzureRmVM-ResourceGroupName$rgName$vmList.Name

后續(xù)步驟

若要登錄到新虛擬機(jī),請(qǐng)?jiān)?a target="_blank" rel="nofollow">門(mén)戶中瀏覽到該 VM,單擊“連接”,然后打開(kāi)遠(yuǎn)程桌面 RDP 文件。 使用原始虛擬機(jī)的帳戶憑據(jù)登錄到新虛擬機(jī)。 有關(guān)詳細(xì)信息,請(qǐng)參閱How to connect and log on to an Azure virtual machine running Windows(如何連接并登錄到運(yùn)行 Windows 的 Azure 虛擬機(jī))。

立即訪問(wèn)http://market.azure.cn

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容