4.5. 构建并使用 rpm-ostree 镜像进行离线部署
您可以使用 Image Builder 使用嵌入式 MicroShift 容器镜像创建 rpm-ostree
系统镜像。要嵌入容器镜像,您必须对镜像构建器蓝图添加镜像引用。您可以根据需要创建您的用例的提交和 ISO。
将此处列出的先决条件添加到遵循的步骤中包含的先决条件。
4.5.1. 离线部署的额外先决条件
- 您已创建了和更新 RHEL for Edge 镜像蓝图,以便离线使用。以下流程使用通过容器镜像创建的蓝图示例。您必须使用您在 "Embedding MicroShift 容器中创建的更新蓝图进行离线部署"。
-
您已更新了
/etc/osbuild-worker/osbuild-worker.toml
配置文件以离线使用。
将以下流程中的 minimal-microshift.toml
替换为您更新用于离线使用的 TOML 名称,<my_blueprint_name>。
4.5.2. 将 MicroShift 服务添加到蓝图中
将 MicroShift RPM 软件包添加到镜像构建器蓝图中,可以使用嵌入 MicroShift 的 RHEL for Edge 镜像构建。
流程
使用以下示例创建蓝图:
镜像构建器蓝图示例
cat > minimal-microshift.toml <<EOF name = "minimal-microshift" description = "" version = "0.0.1" modules = [] groups = [] [[packages]] name = "microshift" version = "*" [customizations.services] enabled = ["microshift"] EOF
注意命令中的通配符
*
使用最新的 MicroShift RPM。如果您需要特定版本,请替换您想要版本的通配符。例如,插入4.14.1
以下载 MicroShift 4.14.1 RPM。运行以下命令,将蓝图添加到镜像构建器中:
$ sudo composer-cli blueprints push minimal-microshift.toml
验证
运行以下命令,验证 Image Builder 配置只列出 MicroShift 软件包:
$ sudo composer-cli blueprints depsolve minimal-microshift | grep microshift
输出示例
blueprint: minimal-microshift v0.0.1 microshift-greenboot-4.13.1-202305250827.p0.g4105d3b.assembly.4.13.1.el9.noarch microshift-networking-4.13.1-202305250827.p0.g4105d3b.assembly.4.13.1.el9.x86_64 microshift-release-info-4.13.1-202305250827.p0.g4105d3b.assembly.4.13.1.el9.noarch microshift-4.13.1-202305250827.p0.g4105d3b.assembly.4.13.1.el9.x86_64 microshift-selinux-4.13.1-202305250827.p0.g4105d3b.assembly.4.13.1.el9.noarch
可选:运行以下命令来验证 Image Builder 配置列出了要安装的所有组件:
$ sudo composer-cli blueprints depsolve minimal-microshift
4.5.3. 创建 RHEL for Edge 镜像
使用以下步骤创建 ISO。RHEL for Edge Installer 镜像从正在运行的容器中拉取提交,并创建一个带有配置为使用嵌入式 rpm-ostree
提交的 Kickstart 文件的可安装的引导 ISO。
先决条件
- 您的构建主机满足 Image Builder 系统要求。
-
已安装并设置 Image Builder 和
composer-cli
工具。 - 有对构建主机的 root 用户访问权限。
-
已安装
podman
工具。
流程
运行以下命令启动
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)。
您可以运行以下命令来定期检查构建的状态:
$ 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
命令监控构建。运行以下命令,使用 ID 下载容器镜像,并获取可供使用的镜像:
$ sudo composer-cli compose image ${BUILDID}
运行以下命令,将下载的容器镜像的所有权改为当前用户:
$ sudo chown $(whoami). ${BUILDID}-container.tar
运行以下命令,在镜像中为当前用户添加读取权限:
$ sudo chmod a+r ${BUILDID}-container.tar
通过完成以下步骤,在端口 8085 上引导服务器,供 ISO 构建使用
ostree
容器镜像:运行以下命令来获取
IMAGEID
变量结果:$ IMAGEID=$(cat < "./${BUILDID}-container.tar" | sudo podman load | grep -o -P '(?<=sha256[@:])[a-z0-9]*')
运行以下命令,使用
IMAGEID
变量结果来执行 podman 命令步骤:$ sudo podman run -d --name=minimal-microshift-server -p 8085:8080 ${IMAGEID}
此命令还会返回在
IMAGEID
变量中保存的容器 ID,以进行监控。
运行以下命令来生成安装程序蓝图文件:
cat > microshift-installer.toml <<EOF name = "microshift-installer" description = "" version = "0.0.0" modules = [] groups = [] packages = [] EOF