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

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

使用 Sysprep 通用化 Windows VM

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

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

Important

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

  1. 登录到 Windows 虚拟机。
  2. 以管理员身份打开“命令提示符”窗口。 将目录切换到 %windir%\system32\sysprep,然后运行 sysprep.exe
  3. 在“系统准备工具”对话框中,选择“进入系统全新体验(OOBE)”,确保已选中“通用化”复选框。
  4. 在“关机选项”中选择“关机”。
  5. 单击 “确定”。

    启动 Sysprep

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

在门户中创建托管映像

  1. 打开 门户
  2. 在左侧菜单中,单击“虚拟机”,然后从列表中选择 VM。
  3. 在 VM 页的上部菜单中,单击“捕获”。
  4. 在“名称”中,键入想要用于映像的名称。
  5. 在“资源组”中,选择“新建”或键入名称,或选择“使用现有”并从下拉列表中选择要使用的资源组。
  6. 如果想要在创建映像后删除源 VM,选择“创建映像后自动删除此虚拟机”。
  7. 完成后,单击“创建”。
  8. 创建映像后,在资源组的资源列表中,你会看到它作为“映像”资源而出现。

使用 PowerShell 创建 VM 映像

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

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

PowerShell复制
Install-Module AzureRM.Compute -RequiredVersion 2.6.0

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

  1. 创建一些变量。powershell $vmName = "myVM" $rgName = "myResourceGroup" $location = "ChinaEast" $imageName = "myImage"
  2. 确保 VM 已解除分配。

    PowerShell复制
    Stop-AzureRmVM -ResourceGroupName $rgName -Name $vmName -Force 
  3. 将虚拟机的状态设置为“通用化”。

    PowerShell复制
    Set-AzureRmVm -ResourceGroupName $rgName -Name $vmName -Generalized 
  4. 获取虚拟机。

    PowerShell复制
    $vm = Get-AzureRmVM -Name $vmName -ResourceGroupName $rgName 
  5. 创建映像配置。

    PowerShell复制
    $image = New-AzureRmImageConfig -Location $location -SourceVirtualMachineId $vm.ID 
  6. 创建映像。

    PowerShell复制
    New-AzureRmImage -Image $image -ImageName $imageName -ResourceGroupName $rgName 

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

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

  1. 创建一些变量。

    PowerShell复制
    $vmName = "myVM"
    $rgName = "myResourceGroup"
    $location = "ChinaEast" $snapshotName = "mySnapshot" $imageName = "myImage" 
  2. 获取 VM。

    PowerShell复制
    $vm = Get-AzureRmVm -Name myVM -ResourceGroupName $rgName 
  3. 获取托管磁盘的 ID。

    PowerShell复制
    $diskID = $vm.StorageProfile.OsDisk.ManagedDisk.Id
    
  4. 创建映像配置。

    Azure PowerShell复制试用
    $imageConfig = New-AzureRmImageConfig -Location $location
    $imageConfig = Set-AzureRmImageOsDisk -Image $imageConfig -OsState Generalized -OsType Windows -ManagedDiskId $diskID 
  5. 创建映像。

    PowerShell复制
    New-AzureRmImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig 

使用 PowerShell 从快照创建映像

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

  1. 创建一些变量。

    PowerShell复制
    $rgName = "myResourceGroup"
    $location = "ChinaEast"
    $snapshotName = "mySnapshot" $imageName = "myImage" 
  2. 获取快照。

    PowerShell复制
    $snapshot = Get-AzureRmSnapshot -ResourceGroupName $rgName -SnapshotName $snapshotName 
  3. 创建映像配置。

    PowerShell复制
    $imageConfig = New-AzureRmImageConfig -Location $location
    $imageConfig = Set-AzureRmImageOsDisk -Image $imageConfig -OsState Generalized -OsType Windows -SnapshotId $snapshot.Id 
  4. 创建映像。

    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。

  1. 首先,设置公共参数:

    PowerShell复制
    $vmName = "myVM"
    $rgName = "myResourceGroup"
    $location = "ChinaEast" $imageName = "myImage" $osVhdUri = "https://mystorageaccount.blob.core.chinacloudapi.cn/vhdcontainer/osdisk.vhd" 
  2. 停止\解除分配 VM。

    PowerShell复制
    Stop-AzureRmVM -ResourceGroupName $rgName -Name $vmName -Force 
  3. 将 VM 标记为通用。

    PowerShell复制
    Set-AzureRmVm -ResourceGroupName $rgName -Name $vmName -Generalized 
  4. 使用通用 OS VHD 创建映像。

    PowerShell复制
    $imageConfig = New-AzureRmImageConfig -Location $location
    $imageConfig = Set-AzureRmImageOsDisk -Image $imageConfig -OsType Windows -OsState Generalized -BlobUri $osVhdUri $image = New-AzureRmImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig 

后续步骤

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值