第 4 章 使用 Image Builder 命令行编写 RHEL for Edge 镜像

使用 Image Builder 创建自定义 RHEL for Edge 镜像(OSTree 提交)。

要访问 Image Builder 并创建自定义 RHEL for Edge 镜像,您可以使用 RHEL web 控制台界面或命令行界面。

本章提供有关使用 CLI 为 Edge 镜像创建 RHEL 的信息。要使用 RHEL web 控制台创建 RHEL for Edge 镜像,请参阅 第 3 章 在 RHEL web 控制台中使用 Image Builder 编写 RHEL for Edge 镜像

对于基于网络的部署,使用 CLI 编写 RHEL for Edge 镜像的工作流涉及以下高级别步骤:

  1. 为 RHEL for Edge 镜像创建蓝图
  2. 创建 RHEL for Edge 镜像
  3. 下载 RHEL for Edge 镜像

要执行这些步骤,请使用 composer-cli 软件包。

注意

要以非 root 身份运行 composer-cli 命令,您必须是 weldr 组的一部分,或者您必须具有系统的管理员访问权限。

对于基于非网络的部署,使用 CLI 为 Edge 镜像编写 RHEL 的工作流涉及以下高级别步骤:

  1. 为 RHEL for Edge 镜像创建蓝图
  2. 创建 RHEL for Edge 容器镜像
  3. 为 Edge 安装程序创建 RHEL
  4. 下载 RHEL for Edge 镜像

4.1. 使用 Image Builder 命令行界面创建 RHEL for Edge 镜像蓝图

要为 RHEL for Edge 镜像创建蓝图,请执行以下步骤:

流程

  1. 以 Tom 的 Obvious、Minimal Language(TOML)格式创建一个纯文本文件,其内容如下:

    name = "blueprint-name"
    description = "blueprint-text-description"
    version = "0.0.1"
    modules = [ ]
    groups = [ ]

    其中,

    • Blueprint-name 是名称,print-text-description 是您的蓝图的描述。
    • 0.0.1 是 Semantic Versioning 方案的版本号。
    • 模块 描述了要安装到镜像中的软件包名称和匹配版本的 glob,例如:软件包名称 = "tmux",匹配的版本 glob 是 version = "2.9a"。

      请注意,目前软件包和模块之间没有区别。

    • 组是要安装到镜像中的软件包组,如组软件包 anaconda-tools。

      此时,如果您不知道模块和组,请将它们留空。

  2. 包含所需的软件包,并在蓝图中自定义其他详情以满足您的要求。

    有关您可以在蓝图中包含和自定义的软件包的更多信息,请参阅 支持的镜像自定义。

    对于要包含在蓝图中的每个软件包,请在文件中添加以下行:

    [[packages]]
    name = "package-name"
    version = "package-version"

    其中,

    • package-name 是软件包的名称,如 httpd、gdb-doc 或 coreutils。
    • package-version 是您要使用的软件包的版本号。

      package-version 支持以下 dnf 版本规格:

    • 对于特定版本,请使用具体版本号,如 8.3.0。
    • 对于最新可用版本,请使用星号 *。
    • 对于最新的次版本,请使用如 8.* 的格式。
  3. 将蓝图推送到镜像构建器服务器:

    # composer-cli blueprints push blueprint-name.toml
  4. 列出现有的蓝图,以检查创建的蓝图是否已成功推送并存在。

    # composer-cli blueprints show BLUEPRINT-NAME
  5. 检查蓝图中列出的组件和版本是否有效:

    # composer-cli blueprints depsolve blueprint-name