创建映像定义和映像版本

注意

本文引用了 CentOS,这是一个处于生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指南

Azure Compute Gallery(以前称为共享映像库)简化了整个组织中的自定义映像共享。 自定义映像类似于市场映像,不同的是自定义映像的创建者是自己。 可以从 VM、VHD、快照、托管映像或其他映像版本创建映像。

使用 Azure Compute Gallery 可以在 Microsoft Entra 租户内在同一区域或跨区域与组织中的其他用户共享自定义 VM 映像。 选择要共享哪些映像,要在哪些区域中共享,以及希望与谁共享它们。 可以创建多个库,以便可以按逻辑方式对映像进行分组。 许多新功能(如 ARM64、加速网络、TrustedVM)仅通过 Azure Compute Gallery 获得支持,不适用于“托管映像”。

Azure Compute Gallery 功能具有多种资源类型:

资源 说明
映像源 这是可用于在库中创建“映像版本”的资源。 映像源可以是现有的 Azure VM(通用或专用)、托管映像、快照或其他库中的映像版本。
与 Azure 市场一样,是用于管理及共享映像和 VM 应用程序的存储库,但你可以控制谁有权访问该库。
映像定义 映像定义在库中创建,携带有关该映像以及在内部使用该映像的要求的信息。 这包括了该映像是 Windows 还是 Linux 映像、发行说明以及最低和最高内存要求。 它是某种映像类型的定义。
映像版本 使用库时,将使用映像版本来创建 VM。 可根据环境的需要创建多个映像版本。 与托管映像一样,在使用映像版本创建 VM 时,将使用映像版本来创建 VM 的新磁盘。 可以多次使用映像版本。

开始之前

若要完成本文中的步骤,必须已有一个 Azure Compute Gallery,以及 Azure 中可用的映像的源。 映像源可以是:

  • 订阅中的 VM。 可以从专用化和通用化 VM 中捕获映像。
  • 托管映像,
  • 托管 OS 和数据磁盘。
  • 存储帐户中作为 VHD 的 OS 和数据磁盘。
  • 同一订阅中相同库或其他库中的其他映像版本。

如果映像包含数据磁盘,则数据磁盘大小不能超过 1 TB。

映像定义名称可能包含大写或小写字母、数字、点、短划线和句点。 若要详细了解可以为映像定义指定的值,请参阅映像定义

允许用于映像版本的字符为数字和句点。 数字必须在 32 位整数范围内。 格式:MajorVersion.MinorVersion.Patch

通过本文进行操作时,请根据需要替换资源名称。

有关通用映像,请参阅 OS 特定指南,然后再捕获映像:

创建映像

选择下面的选项来创建映像定义和映像版本:

若要在门户中从 VM 创建映像,请参阅捕获 VM 的映像

若要使用 VM 以外的源创建映像,请执行以下步骤。

  1. 转到 Azure 门户,然后搜索并选择“Azure Compute Gallery”。

  2. 从列表中选择需要使用的库。

  3. 在库的页面顶部选择“添加”,然后从下拉列表中选择“VM 映像定义”。

  4. 在“向 Azure Compute Gallery 添加新的映像定义”页上的“基本信息”选项卡中,选择“区域”。

  5. 对于“映像定义名称”,键入一个类似 myImageDefinition 的名称。

  6. 对于“操作系统”,根据你的源选择正确的选项。

  7. 对于“VM 代系”,根据你的源选择相应的选项。 大多数情况下都会选择“第 1 代”。 有关详细信息,请参阅对第 2 代 VM 的支持

  8. 对于“操作系统状态”,根据你的源选择相应的选项。 有关详细信息,请参阅通用化和专用化

  9. 对于“发布者”,键入一个类似 myPublisher 的唯一名称。

  10. 对于“产品/服务”,键入一个类似 myOffer 的唯一名称。

  11. 对于“SKU”,键入一个类似 mySKU 的唯一名称。

  12. 在页面底部,选择“查看 + 创建”。

  13. 映像定义通过验证后,请选择“创建”。

  14. 部署完成后,选择“转到资源”。

  15. 在映像定义页面的“开始使用”选项卡上,选择“创建版本”。

  16. 在“区域”中,选择你需要创建映像的区域。 在某些情况下,源必须位于创建映像的同一区域中。 如果在后面的下拉列表中看不到你的源,请尝试更改映像的区域。 稍后始终可以将映像复制到其他区域。

  17. 对于“版本号”,键入一个类似 1.0.0 的数字。 映像版本名称应遵循“主要版本.次要版本.修补版本”格式(使用整数)。

  18. 在“源”中,从下拉列表中选择要用于源的文件类型。 有关每种源类型的具体详细信息,请参阅下表。

    其他字段
    磁盘或快照 - 对于“OS 磁盘”,在下拉列表中选择对应的磁盘或快照。
    - 若要添加数据磁盘,请键入 LUN 编号,然后从下拉列表中选择数据磁盘。
    映像版本 - 从下拉列表中选择“源库”。
    - 从下拉列表中选择正确的映像定义。
    - 从下拉列表中选择要使用的现有映像版本。
    托管映像 \- 从下拉列表中选择“源映像”。
    托管映像必须位于与你在“实例详细信息”中选择的相同区域内。
    存储帐户中的 VHD 选择“浏览”,选择 VHD 的存储帐户。
  19. 在“从最新版本中排除”中,保留默认值“否”,除非你在使用 latest(而不是版本号)创建 VM 时不希望使用此版本。

  20. 对于“生命周期结束日期”,从日历中选择你认为此版本应停止使用的日期。

  21. 在“复制””选项卡中,从下拉列表中选择存储类型。

  22. 设置“默认复制计数”,你可以为你添加的每个区域覆盖此计数。

  23. 需要复制到源区域,因此列表中的第一个副本将处于创建映像的区域。 若要添加更多副本,可以从下拉列表中选择区域,并根据需要调整副本计数。

  24. 完成操作后,选择“查看 + 创建”。 Azure 将验证配置。

  25. 映像版本通过验证后,请选择“创建”。

  26. 部署完成后,选择“转到资源”。

可能需要花费一段时间才能将映像复制到所有目标区域。

还可以从门户中将现有 VM 捕获为映像。 有关详细信息,请参阅在门户中创建 VM 映像

使用一个租户中的源映像在另一个租户中创建映像

在源映像所在的订阅中,向用户授予读取者权限。 一旦用户拥有源映像的读取者权限,就可以登录两个帐户(源和目标)。

需要源映像的 tenantID、用于存储新映像(目标)的订阅的 subscriptionID 以及源映像的 resourceID。 此外,需要确保源映像的区域或副本与目标区域相同。

# Set some variables
tenantID="<tenant ID for the source image>"
subID="<subscription ID where the image will be creted>"
sourceImageID="<resource ID of the source image>"

# Login to the subscription where the new image will be created
az cloud set -n AzureChinaCloud
az login

# Log in to the tenant where the source image is available
az cloud set -n AzureChinaCloud
az login --tenant $tenantID

# Log back in to the subscription where the image will be created and ensure subscription context is set
az login
az account set --subscription $subID

# Create the image
az sig image-version create `
   --gallery-image-definition myImageDef `
   --gallery-image-version 1.0.0 `
   --gallery-name myGallery `
   --resource-group myResourceGroup `
   --image-version $sourceImageID
   --location myLocation

后续步骤

有关如何提供购买计划信息的信息,请参阅在创建映像时提供 Azure 市场购买计划信息