2.3. 构建并使用 rpm-ostree 镜像进行离线部署


您可以使用镜像构建器创建带有嵌入式 MicroShift 容器镜像的 rpm-ostree 系统镜像。要嵌入容器镜像,您必须将镜像引用添加到镜像构建器蓝图中。您可以根据您的用例需要创建提交和 ISO。

将此处列出的先决条件添加到以下流程中包含的先决条件中。

2.3.1. 离线部署的额外先决条件

  • 您已创建了并更新了 RHEL for Edge 镜像蓝图以供离线使用。以下流程使用通过容器镜像创建的蓝图示例。您必须使用在 "Embedding MicroShift 容器中为离线部署"中创建的更新的蓝图。
  • 您已更新了 /etc/osbuild-worker/osbuild-worker.toml 配置文件,以离线使用。
重要

将以下流程中的 minimal-microshift.toml 替换为您更新的 TOML 的名称,以便离线使用 <my_blueprint_name>。

2.3.2. 将 MicroShift 服务添加到蓝图中

将 MicroShift RPM 软件包添加到镜像构建器蓝图中可启用使用 MicroShift 嵌入的 RHEL for Edge 镜像构建。

流程

  1. 使用安装在您的平台架构的 /usr/share/microshift/blueprint 目录中安装的蓝图。有关蓝图部分的说明,请参见以下示例片断:

    生成的镜像构建器蓝图示例片断

    name = "microshift_blueprint"
    description = "MicroShift 4.19.1 on x86_64 platform"
    version = "0.0.1"
    modules = []
    groups = []
    
    [[packages]] 
    1
    
    name = "microshift"
    version = "4.19.1"
    ...
    ...
    
    [customizations.services] 
    2
    
    enabled = ["microshift"]
    
    [customizations.firewall]
    ports = ["ssh"]
    ...
    ...
    
    [[containers]] 
    3
    
    source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f41e79c17e8b41f1b0a5a32c3e2dd7cd15b8274554d3f1ba12b2598a347475f4"
    
    [[containers]]
    source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:dbc65f1fba7d92b36cf7514cd130fe83a9bd211005ddb23a8dc479e0eea645fd"
    ...
    …
    EOF

    1
    使用与 microshift-release-info RPM 兼容的同一版本,所有非可选 MicroShift RPM 软件包的引用。
    2
    有关在系统引导时自动启用 MicroShift 并应用默认网络设置的引用。
    3
    对离线部署所需的所有非可选 MicroShift 容器镜像的引用。SHA 取决于您正在使用的发行版本。
  2. 运行以下命令,将蓝图添加到镜像构建器中:

    $ sudo composer-cli blueprints push microshift_blueprint.toml

验证

  1. 运行以下命令,验证镜像构建器配置只列出 MicroShift 软件包:

    $ sudo composer-cli blueprints depsolve microshift_blueprint | grep microshift

    输出示例

    blueprint: microshift_blueprint v0.0.1
        microshift-release-info-4.19.1-202511250827.p0.g4105d3b.assembly.4.19.1.el9.noarch
        microshift-4.19.1-202511250827.p0.g4105d3b.assembly.4.19.1.el9.x86_64

  2. 可选:运行以下命令来验证镜像构建器配置,该配置列出了要安装的所有组件:

    $ sudo composer-cli blueprints depsolve microshift_blueprint

2.3.3. 使用镜像构建器创建 RHEL for Edge 镜像

使用以下步骤创建 ISO。RHEL for Edge Installer 镜像从正在运行的容器拉取提交,并创建一个带有配置为使用嵌入的 rpm-ostree 提交的 Kickstart 文件的可安装的引导 ISO。

先决条件

  • 您的构建主机满足镜像构建器系统要求。
  • 已安装并设置镜像构建器和 composer-cli 工具。
  • 您 root-user 可以访问您的构建主机。
  • 已安装 podman 工具。

流程

  1. 运行以下命令启动 ostree 容器镜像构建:

    $ BUILDID=$(sudo composer-cli compose start-ostree --ref "rhel/{op-system-version-major}/$(uname -m)/edge" <microshift_blueprint> edge-container | awk '/^Compose/ {print $2}') 
    1
    1
    <microshift_blueprint > 替换为蓝图的名称。

    此命令还会返回用于监控构建的标识(ID)。

  2. 您可以运行以下命令来定期检查构建的状态:

    $ sudo composer-cli compose status

    正在运行的构建的输出示例

    ID                                     Status     Time                     Blueprint                 Version   Type               Size
    cc3377ec-4643-4483-b0e7-6b0ad0ae6332   RUNNING    Wed Jun 7 12:26:23 2023  microshift_blueprint      0.0.1     edge-container

    已完成的构建的输出示例

    ID                                     Status     Time                      Blueprint              Version   Type               Size
    cc3377ec-4643-4483-b0e7-6b0ad0ae6332   FINISHED   Wed Jun 7 12:32:37 2023   microshift_blueprint   0.0.1     edge-container

    注意

    如果您熟悉如何启动和停止构建,您可以使用 watch 命令来监控您的构建。

  3. 运行以下命令,使用 ID 下载容器镜像并使镜像可供使用:

    $ sudo composer-cli compose image ${BUILDID}
  4. 运行以下命令,将下载的容器镜像的所有权更改为当前用户:

    $ sudo chown $(whoami). ${BUILDID}-container.tar
  5. 运行以下命令,将当前用户的读取权限添加到镜像中:

    $ sudo chmod a+r ${BUILDID}-container.tar
  6. 通过完成以下步骤,在端口 8085 上引导要被 ISO 构建使用的 ostree 容器镜像的服务器:

    1. 运行以下命令来获取 IMAGEID 变量结果:

      $ IMAGEID=$(cat < "./${BUILDID}-container.tar" | sudo podman load | grep -o -P '(?<=sha256[@:])[a-z0-9]*')
    2. 运行以下命令,使用 IMAGEID 变量结果来执行 podman 命令步骤:

      $ sudo podman run -d --name=minimal-microshift-server -p 8085:8080 ${IMAGEID}

      此命令还会返回保存在 IMAGEID 变量中用于监控的容器 ID。

  7. 运行以下命令来生成安装程序蓝图文件:

    cat > microshift-installer.toml <<EOF
    name = "microshift-installer"
    
    description = ""
    version = "0.0.0"
    modules = []
    groups = []
    packages = []
    EOF
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部