4.3. 使用命令行创建蓝图


您可以使用命令行(CLI)创建新的 RHEL 镜像构建器蓝图。蓝图描述了最终的镜像及其自定义,如软件包和内核自定义。

先决条件

  • 您以 root 用户身份登录,或者是 weldr 组成员的用户身份登录

流程

  1. 创建一个包含以下内容的纯文本文件:

    name = "<blueprint_name>"
    description = "<long_form_description>"
    version = "<0.0.1>"
    modules = []
    groups = []
    Copy to Clipboard Toggle word wrap

    <blueprint_name><long_form_description> 替换为蓝图的名称和描述。

    根据语义版本控制方案,将 <0.0.1> 替换为版本号。

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

    [[packages]]
    name = "<package_name>"
    version = "<package_version>"
    Copy to Clipboard Toggle word wrap

    <package_name> 替换为软件包的名称,如 httpdgdb-doccoreutils

    (可选)将 <package_version> 替换为要使用的版本。此字段支持 dnf 版本规范:

    • 对于特定版本,请使用确切的版本号,如 8.7.0
    • 对于最新可用版本,请使用星号 *
    • 对于最新的次版本,请使用以下格式,如 8.*
  3. 自定义蓝图以满足您的需要。例如,禁用 Simultaneous Multi Threading (SMT),在蓝图文件中添加以下行:

    [customizations.kernel]
    append = "nosmt=force"
    Copy to Clipboard Toggle word wrap

    有关其他可用的自定义信息,请参阅 支持的镜像自定义

    请注意,[][[]] 是以 TOML 表示的不同的数据结构。

    • [customizations.kernel] 标头代表由一组键及其对应值对定义的单个表,例如:append = "nosmt=force"
    • [[packages]] 标头代表表数组。第一个实例定义数组及其第一个表元素,例如 name = "package-name"version = "package-version",每个后续实例都按照您定义它们的顺序创建并定义一个新的表元素。
  4. 保存文件,例如,保存为 <blueprint_name>.toml,并关闭文本编辑器。
  5. 可选:检查蓝图 TOML 文件中的所有设置是否已被正确解析。保存蓝图,并将保存的输出与输入文件进行比较:

    # composer-cli blueprints save <blueprint_name>.toml
    Copy to Clipboard Toggle word wrap
    1. <blueprint_name>.toml 保存的文件与输入文件进行比较。
  6. 推送蓝图:

    # composer-cli blueprints push <blueprint_name>.toml
    Copy to Clipboard Toggle word wrap

    <blueprint_name> 替换为您在前面的步骤中使用的值。

    注意

    以非 root 身份运行 composer-cli 命令创建镜像,请将您的用户添加到 weldrroot 组中。

    # usermod -a -G weldr user
    $ newgrp weldr
    Copy to Clipboard Toggle word wrap

验证

  • 列出现有的蓝图以验证蓝图是否已推送并已存在:

    # composer-cli blueprints list
    Copy to Clipboard Toggle word wrap
  • 显示您刚刚添加的蓝图配置:

    # composer-cli blueprints show <blueprint_name>
    Copy to Clipboard Toggle word wrap
  • 检查蓝图中列出的组件和版本是否有效:

    # composer-cli blueprints depsolve <blueprint_name>
    Copy to Clipboard Toggle word wrap

    如果 RHEL 镜像构建器无法解决自定义存储库中软件包的依赖项,请清除 osbuild-composer 缓存:

    $ sudo rm -rf /var/cache/osbuild-composer/
    $ sudo systemctl restart osbuild-composer
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat