在 Azure 中创建通用 VM 的托管映像

可以从在存储帐户中存储为托管磁盘或非托管磁盘的通用 VM 中创建托管映像资源。 然后可以使用该映像创建多个 VM。

使用 Sysprep 通用化 Windows VM

Sysprep 将删除所有个人帐户信息及其他某些数据,并准备好要用作映像的计算机。 有关 Sysprep 的详细信息,请参阅如何使用 Sysprep:简介。

确保 Sysprep 支持计算机上运行的服务器角色。 有关详细信息,请参阅Sysprep Support for Server Roles

Important

如果在首次将 VHD 上传到 Azure 之前运行 Sysprep,请确保先准备好 VM,然后再运行 Sysprep。

登录到 Windows 虚拟机。

以管理员身份打开“命令提示符”窗口。 将目录切换到%windir%\system32\sysprep,然后运行sysprep.exe。

在“系统准备工具”对话框中,选择“进入系统全新体验(OOBE)”,确保已选中“通用化”复选框。

在“关机选项”中选择“关机”。

单击“确定”

在 Azure 中创建通用 VM 的托管映像_第1张图片

在 Sysprep 完成时,它会关闭虚拟机。 请勿重启 VM。

在门户中创建托管映像

打开门户。

在左侧菜单中,单击“虚拟机”,然后从列表中选择 VM。

在 VM 页的上部菜单中,单击“捕获”。

在“名称”中,键入想要用于映像的名称。

在“资源组”中,选择“新建”或键入名称,或选择“使用现有”并从下拉列表中选择要使用的资源组。

如果想要在创建映像后删除源 VM,选择“创建映像后自动删除此虚拟机”。

完成后,单击“创建”。

创建映像后,在资源组的资源列表中,你会看到它作为“映像”资源而出现。

使用 PowerShell 创建 VM 映像

直接从 VM 创建映像可确保映像中包含与 VM 关联的所有磁盘,包括 OS 磁盘和任何数据磁盘。 本示例演示如何从使用托管磁盘的 VM 创建托管映像。

在开始之前,请确保有最新版本的 AzureRM.Compute PowerShell 模块。 运行以下命令来安装该模块。

PowerShell复制

Install-ModuleAzureRM.Compute-RequiredVersion2.6.0

有关详细信息,请参阅Azure PowerShell 版本控制。

创建一些变量。powershell $vmName = "myVM" $rgName = "myResourceGroup" $location = "ChinaEast" $imageName = "myImage"

确保 VM 已解除分配。

PowerShell复制

Stop-AzureRmVM-ResourceGroupName$rgName-Name$vmName-Force

将虚拟机的状态设置为“通用化”。

PowerShell复制

Set-AzureRmVm-ResourceGroupName$rgName-Name$vmName-Generalized

获取虚拟机。

PowerShell复制

$vm=Get-AzureRmVM-Name$vmName-ResourceGroupName$rgName

创建映像配置。

PowerShell复制

$image=New-AzureRmImageConfig-Location$location-SourceVirtualMachineId$vm.ID

创建映像。

PowerShell复制

New-AzureRmImage-Image$image-ImageName$imageName-ResourceGroupName$rgName

使用 PowerShell 从托管磁盘创建映像

如果你只想创建 OS 磁盘的映像,还可通过将托管磁盘 ID 指定为 OS 磁盘来创建映像。

创建一些变量。

PowerShell复制

$vmName="myVM"$rgName="myResourceGroup"$location="ChinaEast"$snapshotName="mySnapshot"$imageName="myImage"

获取 VM。

PowerShell复制

$vm=Get-AzureRmVm-NamemyVM-ResourceGroupName$rgName

获取托管磁盘的 ID。

PowerShell复制

$diskID=$vm.StorageProfile.OsDisk.ManagedDisk.Id

创建映像配置。

Azure PowerShell复制试用

$imageConfig=New-AzureRmImageConfig-Location$location$imageConfig=Set-AzureRmImageOsDisk-Image$imageConfig-OsStateGeneralized-OsTypeWindows-ManagedDiskId$diskID

创建映像。

PowerShell复制

New-AzureRmImage-ImageName$imageName-ResourceGroupName$rgName-Image$imageConfig

使用 PowerShell 从快照创建映像

可以从通用 VM 的快照创建托管映像。

创建一些变量。

PowerShell复制

$rgName="myResourceGroup"$location="ChinaEast"$snapshotName="mySnapshot"$imageName="myImage"

获取快照。

PowerShell复制

$snapshot=Get-AzureRmSnapshot-ResourceGroupName$rgName-SnapshotName$snapshotName

创建映像配置。

PowerShell复制

$imageConfig=New-AzureRmImageConfig-Location$location$imageConfig=Set-AzureRmImageOsDisk-Image$imageConfig-OsStateGeneralized-OsTypeWindows-SnapshotId$snapshot.Id

创建映像。

PowerShell复制

New-AzureRmImage-ImageName$imageName-ResourceGroupName$rgName-Image$imageConfig

从存储帐户中的 VHD 创建映像

从存储帐户中的通用 OS VHD 创建托管映像。 需要存储帐户中 VHD 的 URI,其格式为 https://mystorageaccount.blob.core.chinacloudapi.cn/container/vhd_filename.vhd。 在本示例中,使用的 VHD 位于名为 vhdcontainer 的容器中的 mystorageaccount 中,且 VHD 文件名为 osdisk.vhd。

首先,设置公共参数:

PowerShell复制

$vmName="myVM"$rgName="myResourceGroup"$location="ChinaEast"$imageName="myImage"$osVhdUri="https://mystorageaccount.blob.core.chinacloudapi.cn/vhdcontainer/osdisk.vhd"

停止\解除分配 VM。

PowerShell复制

Stop-AzureRmVM-ResourceGroupName$rgName-Name$vmName-Force

将 VM 标记为通用。

PowerShell复制

Set-AzureRmVm-ResourceGroupName$rgName-Name$vmName-Generalized

使用通用 OS VHD 创建映像。

PowerShell复制

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

后续步骤

现在,可以从通用托管映像创建 VM。

立即访问http://market.azure.cn

你可能感兴趣的:(在 Azure 中创建通用 VM 的托管映像)