5.2. 非基于网络的部署工作流
要构建一个使用 "RHEL for Edge Container" 和 "RHEL for Edge Installer" 镜像安装基于 OSTree 系统的引导 ISO 镜像,并且以后可以在断开连接的环境中部署到设备,请按照以下步骤执行。
5.2.1. 使用镜像构建器 CLI 创建 RHEL for Edge 容器蓝图
要为 RHEL for Edge 容器镜像创建蓝图,请执行以下步骤:
流程
以 TOML 格式创建一个纯文本文件,其内容如下:
name = "blueprint-name" description = "blueprint-text-description" version = "0.0.1" modules = [ ] groups = [ ]
其中,
- blueprint-name 是名称,print-text-description 是您的蓝图的描述。
- 0.0.1 是 Semantic Versioning 方案的版本号。
模块 描述了要安装到镜像中的软件包名称和匹配版本的 glob,例如:软件包名称 = "tmux",匹配的版本 glob 是 version = "2.9a"。
请注意,目前软件包和模块之间没有区别。
组是要安装到镜像中的软件包组,如组软件包 anaconda-tools。
此时,如果您不知道模块和组,请将它们留空。
包含所需的软件包,并在蓝图中自定义其他详情以满足您的要求。
对于要包含在蓝图中的每个软件包,请在文件中添加以下行:
[[packages]] name = "package-name" version = "package-version"
其中,
-
package-name 是软件包的名称,如
httpd
、gdb-doc
或coreutils
。 package-version 是您要使用的软件包的版本号。
package-version 支持以下
dnf
版本规范:- 对于特定版本,请使用准确版本号,如 9.0。
- 对于最新可用版本,请使用星号 *。
- 对于最新的次版本,请使用格式(如 9.*)。
-
package-name 是软件包的名称,如
将蓝图推送(导入)到 RHEL 镜像构建器服务器:
# composer-cli blueprints push blueprint-name.toml
列出现有的蓝图,以检查创建的蓝图是否已成功推送并存在。
# composer-cli blueprints show BLUEPRINT-NAME
检查蓝图中列出的组件和版本是否有效:
# composer-cli blueprints depsolve blueprint-name
其他资源
5.2.2. 使用镜像构建器 CLI 创建 RHEL for Edge Installer 蓝图
您可以创建一个蓝图来构建 RHEL for Edge Installer(.iso)
镜像,并指定用户帐户以在安装时自动在系统中创建一个或多个用户。
当您在带有 customizations.user
自定义的蓝图中创建用户时,蓝图会在 /usr/lib/passwd
目录下创建用户,在 /usr/etc/shadow
目录下创建密码。请注意,您无法使用 OSTree
更新在运行的系统中更改镜像其他版本中的密码。使用蓝图创建的用户必须仅用于获得对创建的系统的访问权限。访问系统后,您需要创建用户,例如,使用 useradd
命令。
要为 RHEL for Edge Installer 镜像创建一个蓝图,请执行以下步骤:
流程
以 TOML 格式创建一个纯文本文件,其内容如下:
name = "blueprint-installer" description = "blueprint-for-installer-image" version = "0.0.1" [[customizations.user]] name = "user" description = "account" password = "user-password" key = "user-ssh-key " home = "path" groups = ["user-groups"]
其中,
- blueprint-name 是名称,print-text-description 是您的蓝图的描述。
- 0.0.1 是 Semantic Versioning 方案的版本号。
将蓝图推送(导入)到 RHEL 镜像构建器服务器:
# composer-cli blueprints push blueprint-name.toml
列出现有的蓝图,以检查创建的蓝图是否已成功推送并存在。
# composer-cli blueprints show blueprint-name
检查蓝图中列出的组件和版本是否有效:
# composer-cli blueprints depsolve blueprint-name
其他资源
5.2.3. 使用镜像构建器 CLI 创建 RHEL for Edge 容器镜像
要使用 RHEL 镜像构建器命令行界面创建 RHEL for Edge 容器镜像,请确保您满足以下先决条件,并按照流程操作。
先决条件
- 您已为 RHEL for Edge 容器镜像创建了一个蓝图。
流程
创建 RHEL for Edge 容器镜像。
# composer-cli compose start-ostree --ref rhel/9/x86_64/edge --url URL-OSTree-repository blueprint-name image-type
其中,
-
--ref
与客户用来构建 OSTree 存储库的值相同 --url
是要嵌入到镜像中的提交的 OSTree 存储库的 URL。例如: http://10.0.2.2:8080/repo/。默认情况下,RHEL for Edge 容器镜像的存储库文件夹为 "/repo"。请参阅 设置 web 服务器以安装 RHEL for Edge 镜像。要查找要使用的正确 URL,请访问正在运行的容器并检查
nginx.conf
文件。要查找要使用哪个 URL,请访问正在运行的容器并检查nginx.conf
文件。在nginx.conf
文件中,找到root
目录条目,以搜索/repo/
文件夹信息。请注意,如果您在使用 RHEL 镜像构建器创建 RHEL for Edge 容器镜像(.tar)
时没有指定存储库 URL,则会在nginx.conf
文件中创建默认的/repo/
条目。- blueprint-name 是 RHEL for Edge 蓝图名称。
image-type 是用于非基于网络的部署的
edge-container
。这时将显示一个确认已添加到队列中的 composer 进程。它还显示创建的镜像的通用唯一标识符 (UUID) 号。使用 UUID 号来跟踪构建。另外,记录 UUID 号以易于执行进一步的任务。
-
检查镜像 compose 状态。
# composer-cli compose status
输出以以下格式显示状态:
<UUID> RUNNING date blueprint-name blueprint-version image-type
注意镜像创建过程需要 20 分钟才能完成。
要中断镜像创建过程,请运行:
# composer-cli compose cancel <UUID>
要删除现有镜像,请运行:
# composer-cli compose delete <UUID>
镜像就绪后,它可用于非网络部署。请参阅为非基于网络的部署创建 RHEL for Edge 容器镜像。
5.2.4. 使用命令行界面为非网络部署创建 RHEL for Edge 安装程序镜像
要创建一个嵌入了 OSTree
提交的 RHEL for Edge 安装程序镜像,请使用 RHEL 镜像构建器命令行界面,并确保您已满足以下先决条件,然后按照流程操作。
先决条件
- 您已为 RHEL for Edge Installer 镜像创建了蓝图。
- 您已创建了一个 RHEL for Edge 容器镜像,并使用 web 服务器部署了它。
流程
开始创建 RHEL for Edge Installer 镜像。
# composer-cli compose start-ostree --ref rhel/9/x86_64/edge --url URL-OSTree-repository blueprint-name image-type
其中,
- ref 与客户用来构建 OSTree 存储库的值相同
- URL-OSTree-repository 是要嵌入到镜像中的提交 OSTree 存储库的 URL。例如:http://10.0.2.2:8080/repo。请参阅为非基于网络的部署创建 RHEL for Edge 容器镜像。
- blueprint-name 是 RHEL for Edge Installer 蓝图名称。
image-type 是
edge-installer
。这时将显示一个确认已添加到队列中的 composer 进程。它还显示创建的镜像的通用唯一标识符 (UUID) 号。使用 UUID 号来跟踪构建。另外,记录 UUID 号以易于执行进一步的任务。
检查镜像 compose 状态。
# composer-cli compose status
命令输出以以下格式显示状态:
<UUID> RUNNING date blueprint-name blueprint-version image-type
注意完成镜像创建过程需要几分钟时间。
要中断镜像创建过程,请运行:
# composer-cli compose cancel <UUID>
要删除现有镜像,请运行:
# composer-cli compose delete <UUID>
镜像就绪后,您可以将它用于非网络部署。请参阅为非基于网络的部署安装 RHEL for Edge 镜像。
5.2.5. 使用镜像构建器 CLI 下载 RHEL for Edge Installer 镜像
要使用 RHEL 镜像构建器命令行界面下载 RHEL for Edge Installer 镜像,请确保您满足以下先决条件,然后按照以下步骤操作。
先决条件
- 您已创建了 RHEL for Edge Installer 镜像。
流程
查看 RHEL for Edge 镜像状态。
# composer-cli compose status
输出必须显示以下内容:
$ <UUID> FINISHED date blueprint-name blueprint-version image-type
下载镜像。
# composer-cli compose image <UUID>
RHEL 镜像构建器将镜像作为
.iso
文件下载到当前目录。UUID 号和镜像大小会同时显示。
$ <UUID>-boot.iso: size MB
生成的镜像是可引导 ISO 镜像。