可使用 PowerCLI 通过克隆和编辑映像配置文件来创建自定义映像。可以在现有配置文件中添加或移除一个或多个 VIB。如果添加或移除 VIB 使映像配置文件无法正常运行,则会出现错误。

前提条件

  • 已安装 PowerCLI 和必备软件。请参见安装 vSphere ESXi Image Builder 和必备软件
  • 有权访问包含一个基本映像以及一个或多个 VIB 的库。VMware 和 VMware 合作伙伴会提供可通过 URL 进行访问的公用库。VMware 或 VMware 合作伙伴可以创建一个 ZIP 文件,您可以将其下载到本地环境并使用文件路径进行访问。

过程

  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. 使用管线将要编辑的映像配置文件传递到 format-list,以查看详细信息。
    在本示例中, 新建映像配置文件工作流中创建的映像配置文件只包含基本映像。库中不包含新创建的映像配置文件。但是,您可以按名称访问映像配置文件,或者将其绑定到某个变量来进行访问。
    Get-EsxImageProfile "Test #2" | format-list
    PowerShell 会返回相关信息。
    Name            : Test #2
    Vendor 	      : Vendor42
    ...
    VibList	      : {esx-base 5.0.0.-...,}
  3. (可选) 如果要添加接受级别低于映像配置文件的接受级别的 VIB,请更改映像配置文件的接受级别。
    Set-EsxImageProfile -ImageProfile "Test #2" -AcceptanceLevel VMwareAccepted 
    			 
    PowerShell 会以表格格式返回有关更改的配置文件的信息。
    Name           Vendor           Last Modified       Acceptance Level
    ----           ------           -------------       ----------------
    Test #2        Vendor42         9/22/2010 12:05:... VMwareAccepted
  4. 向映像配置文件中添加软件包 (VIB)。可以按名称添加软件包。
    Add-EsxSoftwarePackage -ImageProfile "Test #2"
    				-SoftwarePackage NewPack3
    PowerShell 会以表格格式返回有关映像配置文件的信息。
    Name           Vendor           Last Modified       Acceptance Level
    ----           ------           -------------       ----------------
    Test #2        Vendor42         9/22/2010 12:05:... VMwareAccepted
    注: 如果添加软件包时出现错误,您可能会遇到接受级别问题,请参见 使用接受级别
  5. 再次查看映像配置文件。
    Get-EsxImageProfile "Test #2" | format-list
    VIB 列表将更新为包含新的软件包,并且显示以下信息。
    Name            : Test #2
    Vendor 	      : Vendor42
    ...
    VibList	      : {esx-base 5.0.0.-..., NewPack3}

示例: 使用变量编辑映像配置文件

该 cmdlet 序列重复工作流的步骤,但将参数作为对象进行传递(按照变量中的位置访问),而不是按名称传递参数。您可以在 PowerCLI 提示符中按顺序运行以下 cmdlet。

Add-EsxSoftwareDepot -DepotUrl depot_url
$ip2 = Get-EsxImageProfile -name "Test #2"
$ip2 | format-list
Set-EsxImageProfile -ImageProfile $ip2 -AcceptanceLevel VMwareAccepted
Add-EsxImageSoftwarePackage -ImageProfile $ip2 -SoftwarePackage NewPack3
$ip2 | format-list