创建 ESXi 映像配置文件以供 vSphere Auto Deploy 使用,将自定义第三方驱动程序添加到映像配置文件并导出,或执行升级。

通过 vSphere ESXi Image Builder,可以创建 ESXi 映像配置文件以供 vSphere Auto Deploy 使用,将自定义第三方驱动程序添加到现有映像配置文件并导出到 ISO 或包,以及执行升级。有关 VMware vSphere 软件的创建、打包和分发方式的基本概念,请参见《管理主机和集群生命周期》文档中的 vSphere Lifecycle Manager 可以使用的软件打包单元

图 1. Image Builder 架构

Image Builder 将映像配置文件以及一个或多个 VIB 作为输入,并生成 ISO 或 ZIP 作为输出。

您可以使用 vSphere ESXi Image Builder cmdlet 管理软件,从而在多种不同情况下将软件部署到您的 ESXi 主机。

表 1. 可以使用 vSphere ESXi Image Builder 的情况
vSphere ESXi Image Builder 的用例 描述
创建映像配置文件,以供 vSphere Auto Deploy 使用 使用 vSphere ESXi Image Builder 创建映像配置文件,此文件定义 vSphere Auto Deploy 用于置备主机的 VIB。
将自定义第三方驱动程序添加到现有的映像配置文件,并导出到 ISO 或包 将第三方驱动程序或扩展自定义 VIB 添加到 ESXi 主机时,请使用 vSphere ESXi Image Builder 克隆 VMware 提供的基础映像,添加自定义 VIB,然后导出到 ISO 或脱机 ZIP 包文件。
执行升级 如果升级包含自定义扩展或驱动程序的系统,您可以使用 vSphere ESXi Image Builder 为自定义扩展创建包含 vSphere 8.0 兼容 VIB 的自定义映像配置文件。将自定义映像配置文件导出到 ISO 或 ZIP,以通过使用 vSphere Lifecycle Manager 基准升级系统。

vSphere ESXi Image Builder cmdlet 将映像配置文件和 VIB 作为输入,并生成各种输出。

表 2. 输入和输出到 vSphere ESXi Image Builder Cmdlet
参数 描述
输入 位于软件库中的映像配置文件和 VIB 用作 Windows 客户端上运行的 PowerCLI cmdlet 的输入。
输出 PowerCLI cmdlet 创建可导出到 ISO 映像或脱机库 ZIP 文件的自定义映像配置文件。ISO 映像可用于安装。ZIP 库可由 vSphere Lifecycle Manageresxcli software 命令用于更新或安装映像。映像配置文件也可在 vSphere Auto Deploy 规则中用于自定义置备 ESXi 主机的软件。

有关 vSphere ESXi Image Builder 的信息,请观看视频“使用 Image Builder CLI”:

映像配置文件

映像配置文件定义了 ESXi 安装或更新进程使用的 VIB 集。映像配置文件适用于使用 vSphere Auto Deploy 置备的 ESXi 主机。可以使用 vSphere ESXi Image Builder 定义和操作映像配置文件。

映像配置文件要求

可以重新创建自定义映像配置文件,或者克隆现有配置文件并添加或移除 VIB。配置文件必须满足以下要求才会有效。

  • 每个映像配置文件必须具有唯一的名称和供应商组合。
  • 每个映像配置文件均有接受程度。在使用 vSphere ESXi Image Builder cmdlet 将 VIB 添加到映像配置文件中时,Image Builder 会检查 VIB 是否与为配置文件定义的接受程度相匹配。
  • 不能移除其他 VIB 所需的 VIB。
  • 一个映像配置文件中不能包含同一 VIB 的两个版本。在添加新版本的 VIB 时,新版本将替换现有版本的 VIB。

映像配置文件验证

映像配置文件及其 VIB 必须满足多个标准才会有效。

  • 映像配置文件必须至少包含一个基础 VIB 和一个可引导的内核模块。
  • 如果映像配置文件中的任何 VIB 依赖于其他 VIB,则其他 VIB 也必须包含在映像配置文件中。VIB 创建程序将此信息存储在 SoftwarePackage 对象的“依赖”属性中。
  • VIB 相互之间不能有冲突。VIB 创建程序将冲突信息存储在 SoftwarePackage 对象的“冲突”属性中。
  • 两个同名但版本不同的 VIB 不能共存。在添加新版本的 VIB 时,新版本将替换现有版本的 VIB。
  • 不存在任何接受程度验证问题。

对映像配置文件进行更改时,vSphere ESXi Image Builder 会检查此更改是否会使配置文件无效。

依赖关系验证
在添加或移除 VIB 时,vSphere ESXi Image Builder 会检查是否满足软件包依赖关系。每个 SoftwarePackage 对象均包含“依赖”属性,该属性指定了 VIB 所依赖的其他 VIB 的列表。请参见 ImageProfile、SoftwarePackage 和 ImageProfileDiff 对象的结构
接受程度验证
每次创建或更改映像配置文件时,vSphere ESXi Image Builder 均执行接受程度验证。vSphere ESXi Image Builder 会根据配置文件允许的最小接受程度来检查映像配置文件中 VIB 的接受程度。每次验证 VIB 的签名时,也会验证 VIB 的接受程度。

导出过程中验证 VIB

在将映像配置文件导出到 ISO 时,vSphere ESXi Image Builder 会通过执行以下操作来验证每个 VIB。

  • 通过检查每个 SoftwarePackage 对象的“冲突”属性,来检查是否不存在任何冲突。
  • 执行 VIB 签名验证。签名验证会阻止对 VIB 软件包进行未授权的修改。签名是一个加密校验和,可以保证 VIB 是其作者创建的。在 ESXi 主机上安装 VIB 期间以及 vSphere Auto Deploy 服务器使用 VIB 时,也会进行签名验证。
  • 检查 VIB 是否遵循文件路径使用规则。VMware 测试 VMwareCertified 及 VMwareAccepted VIB,以保证这些 VIB 始终遵循文件路径使用规则。

使用接受级别

主机、映像配置文件和各个 VIB 都有接受级别。VIB 接受级别显示了 VIB 是如何经过测试的。了解每一接受级别的含义、如何更改接受级别以及这些更改的含义是安装和更新过程的重要部分。

接受级别是为主机、映像配置文件和各个 VIB 设置的。ESXi 映像或映像配置文件的默认接受程度为 PartnerSupported。

主机接受级别
主机接受级别用于确定能够在该主机上安装的 VIB。可以使用 ESXCLI 命令更改主机的接受级别。默认情况下, ESXi 主机的接受程度为 PartnerSupported,以便可以使用 PartnerSupported VIB 轻松进行更新。
注: VMware 支持接受级别为合作伙伴支持的主机。有关接受程度为 PartnerSupported 的各个 VIB 的相关问题,请与合作伙伴的支持组织联系。
映像配置文件接受级别
映像配置文件接受级别在映像配置文件中设置为最低的 VIB 接受级别。如果要将具有低接受级别的 VIB 添加到映像配置文件中,可以使用 Set-EsxImageProfile cmdlet 更改映像配置文件接受级别。请参见 设置映像配置文件接受程度

vSphere Lifecycle Manager 不会显示实际接受级别。使用 vSphere ESXi Image Builder cmdlet 检索 VIB 和映像配置文件的接受程度信息。

VIB 接受级别
VIB 的接受级别可在创建 VIB 时设置。只有 VIB 创建者可以设置该接受级别。

如果您在尝试置备主机时所使用的映像配置文件或 VIB 的接受程度低于该主机的接受程度,则会出现错误。可以更改主机的接受级别以安装映像配置文件或 VIB。请参见更改主机接受程度。更改主机的接受程度将更改该主机的支持级别。

通过主机、映像配置文件或 VIB 的接受程度,可以确定测试 VIB 的人员以及为 VIB 提供支持的人员。VMware 支持以下接受级别。

VMware 认证
“VMware 认证”接受级别具有最严格的要求。此级别的 VIB 能够完全通过全面测试,该测试等效于相同技术的 VMware 内部质量保证测试。当前,只有 I/O Vendor Program (IOVP) 程序驱动程序在此级别发布。VMware 受理此接受级别的 VIB 的支持致电。
VMware 认可
此接受级别的 VIB 通过验证测试,但是这些测试并未对软件的每个功能都进行全面测试。合作伙伴运行测试,VMware 验证结果。现在,以此级别发布的 VIB 包括 CIM 提供程序和 PSA 插件。VMware 会引导 VIB 的支持致电为此接受级别的客户联系合作伙伴的支持部门。
合作伙伴支持
接受级别为“合作伙伴支持”的 VIB 是由 VMware 信任的合作伙伴发布的。合作伙伴执行所有测试。VMware 不验证结果。合作伙伴要在 VMware 系统中启用的新的或非主流的技术将使用此级别。现在,驱动程序 VIB 技术(例如 Infiniband、ATAoE 和 SSD)处于此级别,且具有非标准的硬件驱动程序。VMware 会引导 VIB 的支持致电为此接受级别的客户联系合作伙伴的支持部门。
社区支持
“社区支持”接受级别用于由 VMware 合作伙伴程序外部的个人或公司创建的 VIB。此级别的 VIB 尚未通过任何 VMware 批准的测试程序,且不受 VMware 技术支持或 VMware 合作伙伴的支持。

更改主机接受程度

可以降低主机接受程度,使其与要安装的 VIB 或映像配置文件的接受程度匹配。

主机上每个 VIB 的接受程度必须至少与主机接受程度相同。例如,您不能在接受程度为 VMwareAccepted 的主机上安装接受程度为 PartnerSupported 的 VIB。您必须首先降低主机的接受程度。有关接受程度的详细信息,请参见使用接受级别

警告: 将主机接受程度更改为 CommunitySupported 会影响主机的可支持性,并且可能会影响主机的安全性。

前提条件

安装 ESXCLI。请参见《ESXCLI 入门》。要进行故障排除,请在 ESXi Shell中运行 esxcli 命令。

过程

  1. 检索 VIB 或映像配置文件的接受程度。
    选项 描述
    查看所有 VIB 的信息
    esxcli --server=server_name software
    					 sources vib list --depot=depot_URL
    查看指定 VIB 的信息
    esxcli --server=server_name software
    					 sources vib list --viburl=vib_URL
    查看所有映像配置文件的信息
    esxcli --server=server_name software
    					 sources profile list --depot=depot_URL
    查看指定映像配置文件的信息
    esxcli --server=server_name software
    					 sources profile get --depot=depot_URL
    					 --profile=profile_name
  2. 查看主机接受程度。
    esxcli --server=server_name software acceptance get
  3. 更改主机的接受程度。
    esxcli
    				--server=server_name software acceptance set --level=acceptance_level

    acceptance_level 的值可以是 VMwareCertifiedVMwareAcceptedPartnerSupportedCommunitySupported接受程度的值区分大小写。

    注: 如果主机的接受程度高于要添加的 VIB 或映像配置文件,您可以使用 --force 选项运行 esxcli software vibesxcli software profile 命名空间中的命令。由于您强制执行接受程度低于主机接受程度的 VIB 或映像配置文件而导致您的设置不再一致,因此使用 --force 选项时,将出现警告。当您在接受程度不一致的主机上安装 VIB、移除 VIB 或执行其他某些操作时,会重复出现警告。

设置映像配置文件接受程度

如果要向映像配置文件添加 VIB,并且该 VIB 接受程度低于该映像配置文件的接受程度,则可以克隆具有更低接受程度的映像配置文件或更改该映像配置文件的接受程度。

您可以将 VMwareCertified、VMwareAccepted、PartnerSupported 或 CommunitySupported 指定为映像配置文件的接受程度。如果您降低接受程度,则使用该接受程度置备的映像配置文件和主机的支持级别将发生更改。有关详细信息,请参见使用接受级别

前提条件

安装 PowerCLI 和所有必备软件。请参见配置vSphere ESXi Image Builder

过程

  1. PowerCLI会话中,为每个要使用的库运行 Add-EsxSoftwareDepot cmdlet。
    选项 操作
    远程库 运行 Add-EsxSoftwareDepot -DepotUrl <depot_url>
    ZIP 文件
    1. 将 ZIP 文件下载到本地文件系统。
    2. 运行 Add-EsxSoftwareDepot -DepotUrl C:\<file_path>\<offline-bundle>.zip
    Cmdlet 将返回一个或多个 SoftwareDepot对象。
  2. 获取映像配置文件的接受程度。
    Get-EsxImageProfile -Name string
  3. 设置映像配置文件的接受程度。
    Set-EsxImageProfile -Name string -AcceptanceLevel level