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


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

将此处列出的先决条件添加到遵循的步骤中包含的先决条件。

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

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

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

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

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

  • 从第 1 步开始,创建自己的最小蓝图文件,这会导致更快地安装 MicroShift。
  • 从第 2 步开始,使用生成的蓝图进行安装,其中包括所有 RPM 软件包和容器镜像。这是一个较长的安装过程,但启动更快,因为容器引用在本地访问。

    重要
    • 将以下流程中的 < microshift_blueprint.toml > 替换为您要使用的 TOML 文件的名称。
    • 将以下流程中的 & lt;microshift_blueprint > 替换为您要用于蓝图的名称。

流程

  1. 使用以下示例创建自己的蓝图文件:

    自定义镜像构建器蓝图示例

    cat > <microshift_blueprint.toml> <<EOF 1
    name = "<microshift_blueprint>" 2
    
    description = ""
    version = "0.0.1"
    modules = []
    groups = []
    
    [[packages]]
    name = "microshift"
    version = "*"
    
    [customizations.services]
    enabled = ["microshift"]
    EOF

    1
    <microshift_blueprint.toml > 是 TOML 文件的名称。
    2
    <microshift_blueprint > 是蓝图的名称。
    注意

    命令中的通配符 * 使用最新的 MicroShift RPM。如果您需要特定版本,请替换您想要版本的通配符。例如,插入 4.15.0 以下载 MicroShift 4.15.0 RPM。

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

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

    name = "microshift_blueprint"
    description = "MicroShift 4.15.1 on x86_64 platform"
    version = "0.0.1"
    modules = []
    groups = []
    
    [[packages]] 1
    name = "microshift"
    version = "4.15.1"
    ...
    ...
    
    [customizations.services] 2
    enabled = ["microshift"]
    
    [customizations.firewall]
    ports = ["22:tcp", "80:tcp", "443:tcp", "5353:udp", "6443:tcp", "30000-32767:tcp", "30000-32767:udp"]
    ...
    ...
    
    [[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 容器镜像的引用。
  3. 运行以下命令,将蓝图添加到镜像构建器中:

    $ sudo composer-cli blueprints push <microshift_blueprint.toml> 1
    1
    <microshift_blueprint.toml > 替换为 TOML 文件的名称。

验证

  1. 运行以下命令,验证 Image Builder 配置只列出 MicroShift 软件包:

    $ sudo composer-cli blueprints depsolve <microshift_blueprint> | grep microshift 1
    1
    <microshift_blueprint > 替换为蓝图的名称。

    输出示例

    blueprint: microshift_blueprint v0.0.1
        microshift-greenboot-4.15.1-202305250827.p0.g4105d3b.assembly.4.15.1.el9.noarch
        microshift-networking-4.15.1-202305250827.p0.g4105d3b.assembly.4.15.1.el9.x86_64
        microshift-release-info-4.15.1-202305250827.p0.g4105d3b.assembly.4.15.1.el9.noarch
        microshift-4.15.1-202305250827.p0.g4105d3b.assembly.4.15.1.el9.x86_64
        microshift-selinux-4.15.1-202305250827.p0.g4105d3b.assembly.4.15.1.el9.noarch

  2. 可选:运行以下命令来验证 Image Builder 配置列出了要安装的所有组件:

    $ sudo composer-cli blueprints depsolve <microshift_blueprint> 1
    1
    <microshift_blueprint > 替换为蓝图的名称。

5.5.3. 创建 RHEL for Edge 镜像

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

先决条件

  • 您的构建主机满足 Image Builder 系统要求。
  • 已安装并设置 Image Builder 和 composer-cli 工具。
  • 有对构建主机的 root 用户访问权限。
  • 已安装 podman 工具。

流程

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

    $ BUILDID=$(sudo composer-cli compose start-ostree --ref "rhel/{op-system-version-major}/$(uname -m)/edge" <microshift_blueprint> edge-container | awk '{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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

© 2024 Red Hat, Inc.