3.3. 构建并使用 rpm-ostree 镜像进行离线部署
您可以使用镜像构建器创建带有嵌入式 MicroShift 容器镜像的 rpm-ostree 系统镜像。要嵌入容器镜像,您必须将镜像引用添加到镜像构建器蓝图中。您可以根据您的用例需要创建提交和 ISO。
将此处列出的先决条件添加到以下流程中包含的先决条件中。
3.3.1. 离线部署的额外先决条件 复制链接链接已复制到粘贴板!
- 您已创建了并更新了 RHEL for Edge 镜像蓝图以供离线使用。以下流程使用通过容器镜像创建的蓝图示例。您必须使用在 "Embedding MicroShift 容器中为离线部署"中创建的更新的蓝图。
-
您已更新了
/etc/osbuild-worker/osbuild-worker.toml配置文件,以离线使用。
将以下流程中的 minimal-microshift.toml 替换为您更新的 TOML 的名称,以便离线使用 <my_blueprint_name>。
3.3.2. 将 MicroShift 服务添加到蓝图中 复制链接链接已复制到粘贴板!
将 MicroShift RPM 软件包添加到镜像构建器蓝图中可启用使用 MicroShift 嵌入的 RHEL for Edge 镜像构建。
- 从第 1 步开始,创建自己的最小蓝图文件,从而加快 MicroShift 安装的速度。
从第 2 步开始,使用生成的蓝图进行安装,其中包括所有 RPM 软件包和容器镜像。这是一个较长的安装过程,但启动速度会加快,因为容器引用在本地访问。
重要-
将以下流程中的 <
microshift_blueprint.toml> 替换为您要使用的 TOML 文件的名称。 -
将以下流程中的 &
lt;microshift_blueprint> 替换为您要用于蓝图的名称。
-
将以下流程中的 <
流程
使用以下示例创建自己的蓝图文件:
自定义镜像构建器蓝图示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选。使用安装在您的平台架构的
/usr/share/microshift/blueprint目录中安装的蓝图。有关蓝图部分的说明,请参见以下示例片断:生成的镜像构建器蓝图示例片断
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将蓝图添加到镜像构建器中:
sudo composer-cli blueprints push <microshift_blueprint.toml>
$ sudo composer-cli blueprints push <microshift_blueprint.toml>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<microshift_blueprint.toml> 替换为 TOML 文件的名称。
验证
运行以下命令,验证镜像构建器配置只列出 MicroShift 软件包:
sudo composer-cli blueprints depsolve <microshift_blueprint> | grep microshift
$ sudo composer-cli blueprints depsolve <microshift_blueprint> | grep microshift1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<microshift_blueprint> 替换为蓝图的名称。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:通过运行以下命令验证镜像构建器配置列出了要安装的所有组件:
sudo composer-cli blueprints depsolve <microshift_blueprint>
$ sudo composer-cli blueprints depsolve <microshift_blueprint>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<microshift_blueprint> 替换为蓝图的名称。
3.3.3. 创建 RHEL for Edge 镜像 复制链接链接已复制到粘贴板!
使用以下步骤创建 ISO。RHEL for Edge Installer 镜像从正在运行的容器拉取提交,并创建一个带有配置为使用嵌入的 rpm-ostree 提交的 Kickstart 文件的可安装的引导 ISO。
先决条件
- 您的构建主机满足 Image Builder 系统要求。
-
已安装并设置 Image Builder 和
composer-cli工具。 - 您有访问构建主机的 root-user 访问权限。
-
已安装
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}')$ BUILDID=$(sudo composer-cli compose start-ostree --ref "rhel/{op-system-version-major}/$(uname -m)/edge" <microshift_blueprint> edge-container | awk '{print $2}')1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<microshift_blueprint> 替换为蓝图的名称。
此命令还会返回用于监控构建的标识(ID)。
您可以运行以下命令来定期检查构建的状态:
sudo composer-cli compose status
$ sudo composer-cli compose statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 正在运行的构建的输出示例
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 RUNNING Wed Jun 7 12:26:23 2023 microshift_blueprint 0.0.1 edge-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 已完成的构建的输出示例
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
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-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您熟悉如何启动和停止构建,您可以使用
watch命令来监控您的构建。运行以下命令,使用 ID 下载容器镜像并使镜像可供使用:
sudo composer-cli compose image ${BUILDID}$ sudo composer-cli compose image ${BUILDID}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将下载的容器镜像的所有权更改为当前用户:
sudo chown $(whoami). ${BUILDID}-container.tar$ sudo chown $(whoami). ${BUILDID}-container.tarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将当前用户的读取权限添加到镜像中:
sudo chmod a+r ${BUILDID}-container.tar$ sudo chmod a+r ${BUILDID}-container.tarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过完成以下步骤,在端口 8085 上引导要被 ISO 构建使用的
ostree容器镜像的服务器:运行以下命令来获取
IMAGEID变量结果:IMAGEID=$(cat < "./${BUILDID}-container.tar" | sudo podman load | grep -o -P '(?<=sha256[@:])[a-z0-9]*')$ IMAGEID=$(cat < "./${BUILDID}-container.tar" | sudo podman load | grep -o -P '(?<=sha256[@:])[a-z0-9]*')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,使用
IMAGEID变量结果来执行 podman 命令步骤:sudo podman run -d --name=minimal-microshift-server -p 8085:8080 ${IMAGEID}$ sudo podman run -d --name=minimal-microshift-server -p 8085:8080 ${IMAGEID}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令还会返回保存在
IMAGEID变量中用于监控的容器 ID。
运行以下命令来生成安装程序蓝图文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow