映像映射使用自然语言命名对 vRealize Automation 中特定云帐户/区域使用的一组预定义目标操作系统规范进行分组。

诸如 Microsoft AzureAmazon Web Services 等云供应商帐户使用映像将一组目标部署条件(包括操作系统和相关配置设置)分组到一起。基于 vCenterNSX 的环境(包括 VMware Cloud on AWS)使用类似的分组机制定义一组操作系统部署条件。生成并最终部署和迭代模板时,您可以选择最符合需求的可用映像。

可以按相似操作系统设置、标记策略和功能部署意向组织项目的映像映射。

要简化模板创建,可以在添加新的云帐户时选择预配置选项。选择预配置选项时,将选择指定区域的组织最常用的特定实例映射和映像映射。

将映像信息添加到模板时,可以使用计算机组件 properties 部分中的 imageimageRef 条目。例如,如果要从快照克隆,请使用 imageRef 属性。

有关模板代码中的 imageimageRef 条目的示例,请参见设计 Cloud Assembly 部署

要分配内容库的权限,管理员必须将该权限作为全局权限授予用户。有关相关信息,请参见位于 VMware vSphere 文档《vSphere 虚拟机管理》中的内容库权限的层次结构继承

同步云帐户/区域的映像

要确保正在 Cloud Assembly 基础架构 > 配置 > 映像映射页面上为给定云帐户/区域添加或移除的映像为最新映像,请运行映像同步。
  1. 通过在 Cloud Assembly 中选择基础架构 > 连接 > 云帐户,打开关联的云帐户/区域
  2. 选择现有的云帐户/区域。
  3. 单击同步映像按钮,然后等待操作完成。

    云帐户页面上“同步映像”图标的图片

  4. 操作完成后,单击基础架构 > 配置 > 映像映射
  5. 定义新映像映射或编辑现有映像映射,然后选择步骤 1 中的云帐户/区域。
  6. 单击映像映射页面上的映像同步图标。

    “映像映射”页面上显示的映像同步图标

  7. 映像映射页面上为指定云帐户/区域配置映像映射设置。

查看 OVF 详细信息

可以在 Cloud Assembly 模板对象(如 vCenter 计算机组件和映像映射)中包含 OVF 规范。如果您的映像包含 OVF 文件,则无需打开文件即可发现其内容。将鼠标指针悬停在查看 OVF 详细信息上可显示 OVF 详细信息,包括其名称和位置。有关 OVF 文件格式的详细信息,请参见 vcenter ovf: property。要查看 OVF 详细信息,映像映射必须驻留在 Web 服务器上。

将鼠标指针悬停在“查看 OVF 详细信息”符号上并单击可查看 OVF 内容

注: 从模板置备时,无法使用 vCenter 或内容库中映像的 OVF 属性。如果 OVF 直接托管在 vCenter 中, 查看 OVF 详细信息选项将不可见,也无法以其他方式使用。 查看 OVF 详细信息选项不适用于内容库中的映像。

有关通过在映射字段中使用 OVF 链接查看 OVF 详细信息的相关信息,请参见外部文章 OVA 中的云模板

使用 Microsoft Azure 映像库中的共享和最新映像

Microsoft Azure 创建映像映射时,可以在订阅中从共享 Azure 映像库选择映像。下拉菜单中的映像已进行数据收集,并基于所选区域提供。

虽然共享映像库可以在多个订阅中使用,但无法跨订阅在映像映射下拉菜单中列出。只有特定订阅的映像进行了数据收集,并列在映像映射列表中。要在其他订阅中使用映像库中的映像,请在映像映射中提供映像 ID,并在模板中使用该映像映射。

使用限制和标记为映像选择合适的计算资源

可以使用映像限制根据计算资源的标记选择合适的计算资源。例如,如果在特定映像上具有 tag1 限制,并且在分配期间选择了该映像,则会选择具有标记 tag1 的计算资源来放置正在置备的计算机。如果不存在此类计算资源,则计算机的分配将失败。

使用云配置脚本控制部署

您可以在映像映射和/或模板中使用云配置脚本,来定义要在 Cloud Assembly 部署中使用的自定义操作系统特性。例如,基于要将模板部署到公有云还是私有云,可以对映像应用特定的用户权限、操作系统权限或其他条件。云配置脚本遵循 cloud-init 格式(适用于基于 Linux 的映像)或 cloudbase-init 格式(适用于基于 Windows 的映像)。Cloud Assembly 支持适用于 Linux 系统的 cloud-init 工具和适用于 Windows 系统的 cloudbase-init 工具。

对于 Windows 计算机,可以使用 cloudbase-init 支持的任何云配置脚本格式。

以下示例模板代码中的计算机资源使用包含云配置脚本的映像,该映像的内容显示在 image 条目中。
resources:
  demo-machine:
    type: Cloud.vSphere.Machine
    properties:
      flavor: small
      image: MyUbuntu16 
        https://cloud-images.ubuntu.com/releases/16.04/release-20170307/ami-ubuntu-16.04-1.10.3-00-15269239.ova
      cloudConfig: |
        ssh_pwauth: yes
        chpasswd:
          list: |
            ${input.username}:${input.password}
          expire: false
        users:
          - default
          - name: ${input.username}
            lock_passwd: false
            sudo: ['ALL=(ALL) NOPASSWD:ALL']
            groups: [wheel, sudo, admin]
            shell: '/bin/bash'
        runcmd:
          - echo "Defaults:${input.username}  !requiretty" >> /etc/sudoers.d/${input.username}

在模板中直接使用 cloudConfig 时,动态属性评估将起作用,但对于映像映射中的 cloudConfig,不支持此评估。

在模板代码中,可以使用 image 设置引用定义为映像映射的映像。可以使用 imageRef 设置标识包含快照(对于链接克隆)、映像模板或内容库模板 OVF 的模板。

映像映射和模板包含云配置脚本时会出现什么情况

当包含云配置脚本的模板使用包含云配置脚本的映像映射时,这两个脚本将合并。合并操作首先处理映像映射脚本的内容,再处理模板脚本的内容,同时考虑脚本的格式是否为 #cloud-config

  • 对于采用 #cloud-config 格式的脚本,合并会按如下方式组合每个模块(例如 runcmduserswrite_files)的内容:
    • 对于内容为列表的模块,将合并映像映射和模板中的命令列表,不包括两个列表中相同的命令。
    • 对于内容为字典的模块,将合并命令,结果为两个字典的组合。如果两个字典中都存在相同的键,则将保留映像映射脚本字典中的键,而忽略模板脚本字典中的键。
    • 对于内容为字符串的模块,将保留映像映射脚本中的内容值,而忽略模板脚本中的内容值。
  • 对于采用非 #cloud-config 格式的脚本,或者当一个脚本采用 #cloud-config 格式,而另一个脚本不采用此格式时,按以下方式将两个脚本组合在一起:先运行映像映射脚本,映像映射脚本完成后再运行模板脚本。

添加 vCenter 内容库中的映像

当本地或发布者内容库位于由 vRealize Automation 组织管理的 vCenter 中时,内容库模板映像将显示在映像下拉菜单中。列出的映像包括本地或发布者 vCenter 内容库中的 OVF 和虚拟机模板映像。订阅者内容库中的映像不会显示在下拉菜单中。从其克隆虚拟机的模板将显示在计算机部署用户界面的计算机详细信息部分中。

映像显示一个库项目,其中映像名称以库名称开头,并用正斜杠字符分隔

注:

如果发布者内容库 vCentervRealize Automation 管理,则发布者信息将按以下格式显示在映像映射选择网格中:publisher_content_library_name/content_item_name

要分配内容库的权限,管理员必须将该权限作为全局权限授予用户。有关相关信息,请参见位于 VMware vSphere 文档《vSphere 虚拟机管理》中的内容库权限的层次结构继承

如果发布者内容库 vCenter 未由 vRealize Automation 管理,则订阅者信息将按以下格式显示在映像映射选择网格中:subscriber_content_library_name/content_item_name

例如,在以下场景中,只有订阅者内容库项目显示在 vRealize Automation 映像映射列表中:
  • 对于名为 VC-1 的 vCenter,VC 中有一个订阅者内容库,并在 vRealize Automation 中创建了一个与 VC-1 关联的云帐户。
  • 对于名为 VC-2 的 vCenter,VC 中有一个发布者内容库,VC-1 的订阅者内容库已订阅该发布者内容库。但是,vRealize Automation 中没有与 VC-2 关联的云帐户。

    由于 VC-1 与 vRealize Automation 云帐户相关联,因此订阅者内容库在 vRealize Automation 中可用。将收集其内容并显示在 vRealize Automation 映像映射列表中。但是,由于 VC-2 未与云帐户关联,vRealize Automation 不了解其发布者内容库。要在映像映射列表中显示发布者内容库项目,您必须将云帐户与 VC-2 vCenter 相关联。

部署包含虚拟机模板映像映射的模板时,vRealize Automation 将尝试按以下顺序访问内容库中的映射映像:先访问与要置备计算机的数据存储距离最近的内容库,再访问与该计算机的主机距离最近的内容库。这可能包括本地内容库以及发布者或订阅者内容库。

部署包含 OVF 模板映像映射的模板时,如果 OVF 映像位于本地内容库或是指定远程发布者内容库的本地订阅者,则按映像映射行中指定的方式访问这些映像。

有关创建和使用 vCenter 内容库的相关信息,请参见 vSphere 产品文档中的使用内容库以及 VMware 博客帖子如何使用内容库使用 vSphere 内容库管理模板

有关配置和使用云配置脚本的更多信息

有关在模板中使用云配置脚本的详细信息,请参见Cloud Assembly 中的计算机初始化

另请参见 VMware 博客文章 vSphere 自定义与 Cloud-init使用 Cloud-Init 自定义部署