准备安装和管理 RHEL for Edge 镜像
大约 53 分钟
准备安装和管理 RHEL for Edge 镜像
来源:官方文档 原始多页入口:准备安装和管理 RHEL for Edge 镜像 内容规模:约 55,554 字符,57 个章节标题,138 个命令/代码块,20 条提示框
阅读提要
- 副标题:使用 RHEL 10 创建、部署和管理边缘系统
- 摘要:您可以使用 RHEL 的镜像模式来构建适合您边缘部署的操作系统镜像。然后,您可以在 Edge 服务器上远程安装并安全地管理和扩展镜像部署。
- 主要章节:使用 RHEL 10 创建、部署和管理边缘系统;对红帽文档提供反馈;第 1 章 RHEL for Edge 镜像;第 2 章 从 rpm-ostree 系统迁移到基于 bootc 的系统;第 3 章 使用 FDO 客户端和服务器自动置备和注册 RHEL for Edge 设备;第 4 章 使用 FDO 自动完成 RHEL for Edge 设备预配置和入网
- 推荐阅读顺序:先看“阅读提要”和目录,再按章节查看“关键点/命令/注意”;需要原文细节时点击来源链接。
章节笔记
概览
- 该章节主要为下一级主题的入口。
使用 RHEL 10 创建、部署和管理边缘系统
- 要点:摘要
对红帽文档提供反馈
- 要点:我们致力于为您提供高质量的文档,您的反馈将对我们有很大帮助。为帮助我们改进,您可以通过 Red Hat Jira 跟踪系统提交建议或报告错误。
- 要点:流程
- 列表:登录到 Jira 网站。 如果您还没有帐户,请创建一个。
- 列表:单击顶部导航栏中的 Create。
- 列表:在 Summary 字段中输入描述性标题。
- 列表:在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 列表:点窗口底部的 Create。
第 1 章 RHEL for Edge 镜像
- 要点:RHEL for Edge 镜像使用 rpm-ostree 镜像。它包含将 RHEL 远程安装到边缘服务器所需的系统软件包。
- 要点:系统软件包包括:
- 列表:Base OS 软件包
- 列表:Podman 是容器引擎
- 列表:其他 RPM 软件包管理器(RPM)内容
- 列表:软件包与根目录隔离。
- 列表:每个操作系统版本都是一个单独的部署。您可以随时回滚到以前的系统部署。
- 列表:通过网络提供有效的更新。
1.1. RHEL RPM 镜像和 RHEL for Edge 镜像之间的区别
- 要点:您可以使用基于传统软件包的 RPM 格式或 RHEL for Edge (rpm-ostree)镜像创建 RHEL 系统镜像。使用基于软件包的传统 RPM 是在传统数据中心部署 RHEL 的最佳选择。
- 要点:使用 RHEL for Edge 镜像,您可以在传统数据中心以外的服务器上部署 RHEL。这些边缘服务器会在数据生成源附近处理大量数据。
- 表格样本(共 6 行):
- 主要属性 | RHEL RPM 镜像 | RHEL for Edge 镜像
- OS assemble | 在本地组装软件包以构建镜像。 | 在 OSTree 中组装软件包,以便将其安装到系统上。
- OS updates | 使用 dnf update 从已启用的存储库应用可用的更新。 | 如果 /etc/ostree/remotes.d/ 的 OSTree 远程中存在任何新的提交,请使用 rpm-ostree upgrade 来暂存更新。该更新会在系统重启时生效。
- 软件仓库 | 软件包包含 DNF 软件仓库。 | 软件包包含一个 OSTree 远程存储库。
1.2. 其他资源
- 列表:以交互方式从安装介质安装 RHEL
第 2 章 从 rpm-ostree 系统迁移到基于 bootc 的系统
- 要点:从 RHEL 10.0 开始,RHEL 的镜像模式替换了 RHEL 镜像构建器来创建边缘镜像。要为边缘部署创建可引导的容器镜像,现在必须使用镜像模式。
- 要点:要将镜像模式用于 RHEL,请从 RHEL 9 镜像构建器升级到 RHEL 10 的镜像模式。然后,使用镜像模式为您的边缘部署构建可引导的容器镜像。
- 注意:注意 您仍然可以在 RHEL 9 上使用 RHEL 镜像构建 RHEL for Edge 镜像。
2.1. RHEL 的镜像模式
- 要点:使用 RHEL 的镜像模式,您可以使用容器构建、部署和管理操作系统,并将其作为可引导镜像(rhel-bootc)。rhel-bootc 镜像包含可引导操作系统(如内核、固件和引导装载程序)所需的组件。
- 要点:使用 RHEL 的镜像模式构建、测试,并使用与应用程序容器一样的工具和技术来部署操作系统。RHEL 的镜像模式可以使用 registry.redhat.io/rhel10/rhel-bootc bootc 镜像提供。RHEL bootc 镜像与现有应用程序通用基础镜像(UBI)不同,它们包含通常传统镜像排除的引导所必需的其他组件,如 kernel、initrd、引导装载程序、固件等。
- 列表:使用 RHEL 的镜像模式构建、部署和管理操作系统
- 注意:重要 RHEL 的镜像模式不支持带有蓝图自定义的 rpm-ostree 文件系统。您不能使用 osbuild-composer 从 bootc 镜像构建磁盘镜像。可以使用 bootc-image-builder 从 bootc 镜像生成磁盘镜像。
2.2. 从基础镜像构建自定义镜像
- 要点:要构建并测试您的自定义容器镜像,请使用 Podman。
- 要点:先决条件
- 列表:container-tools 元数据包已安装。
- 列表:使用以下结构创建一个 Containerfile : FROM registry.redhat.io/rhel10/rhel-bootc:latest RUN dnf -y install [software] [dependencies] && dnf clean all ADD [application] ADD [configuration files] RUN [config scripts]
- 列表:使用当前目录中的 Containerfile 构建 <image> 镜像: $ podman build -t quay.io/<namespace>/<image>:<tag> .
- 列表:列出所有镜像: $ podman images
- 列表:rhel-bootc-examples
- 命令/配置摘录:
FROM registry.redhat.io/rhel10/rhel-bootc:latest RUN dnf -y install [software] [dependencies] && dnf clean all ADD [application] ADD [configuration files] RUN [config scripts]
$ podman build -t quay.io/<namespace>/<image>:<tag> .2.3. 将蓝图映射到 Containerfile 自定义
- 要点:映射您的蓝图自定义选项及其等同的 Containerfile 命令。
- 表格样本(共 18 行):
- 蓝图 | Containerfile 命令指令
- distro = "rhel-10." | FROM rhel-bootc:10
- [[packages]] name = "openssh-server" version = "8.*" | RUN dnf install <package name>
- [[groups] name = "anaconda-tools" | RUN dnf group install <group_name>
2.4. 使用镜像模式匹配 RHEL for Edge 镜像的功能
- 要点:标准 bootc 镜像不包括通常是 OSTree 提交一部分的某些软件包。要匹配 RHEL for Edge 设置,您必须手动安装这些软件包。
- 要点:缺少的软件包包括:
- 列表:clevis,clevis-dracut,clevis-luks
- 列表:greenboot, greenboot-default-health-checks
- 列表:fdo-client,fdo-owner-cli
- 列表:一个现有的基于 RHEL for Edge rpm-ostree 的系统。
- 列表:在您的 Containerfile 中添加缺少的软件包: FROM registry.redhat.io/rhel10/rhel-bootc:latest RUN dnf install -y \ clevis \ clevis-dracut \ clevis-luks \ greenboot \ greenboot-default-health-checks \ fdo-client \ fdo-owner-cli # (Optional) Extra packages often used in edge # RUN dnf install -y # dracut-config-generic \ # platf…
- 列表:构建自定义 RHEL for Edge bootc 镜像: $ podman build -t quay.io/<namespace>/<image>:<tag> .
- 命令/配置摘录:
FROM registry.redhat.io/rhel10/rhel-bootc:latest RUN dnf install -y \ clevis \ clevis-dracut \ clevis-luks \ greenboot \ greenboot-default-health-checks \ fdo-client \ fdo-owner-cli # (Optional) Extra packages often used in edge # RUN dnf install -y # dracut-config-generic \ # platform-python \ # pinentry \ # firewalld \ # iptables \ # NetworkManager-wifi \ # NetworkManager-wwan \ # wpa_supplicant \ # traceroute \ # rootfiles \ # policycoreutils-python-utils \ # setools-console \ # rsync \ # usbguard RUN systemctl enable NetworkManager.service \ greenboot-grub2-set-counter.service \ greenboot-grub2-set-success.service \ greenboot-h…
$ podman build -t quay.io/<namespace>/<image>:<tag> .2.4.1. 使用镜像模式构建 RHEL for Edge 9.6 或更高版本的镜像
- 要点:在 RHEL 9.6 及更高版本中,您可以制作可引导的容器镜像,并使用镜像模式为边缘部署生成磁盘镜像。您可以通过在 Containerfile 中定义配置并使用 bootc-image-builder 工具来输出边缘主机的可部署工件。
- 要点:先决条件
- 列表:Podman 已安装在您的主机上。
- 列表:运行 bootc-image-builder 工具所需的 root 访问权限,并在 --privileged 模式下运行容器以构建镜像。
- 列表:创建一个 Containerfile。以下示例包含所需的软件包和内核参数: $ cat Containerfile FROM registry.redhat.io/rhel9/rhel-bootc:9.6 # Packages RUN dnf install -y zsh && dnf clean all # Group install RUN dnf group -y install "Development Tools" # Hostname RUN echo "rock.paper.scissor" > /etc/hostname # Kernel RUN mkdir -p /usr/lib/bootc/kargs.d RU…
- 列表:构建 <image>。在当前目录中使用 Containerfile : $ podman build -t quay.io/<namespace>/<image>:<tag> .
- 列表:列出所有镜像: $ podman images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/<namespace>/<image> latest b28cd00741b3 About a minute ago 2.1 GB
- 列表:使用容器注册中心
- 命令/配置摘录:
$ cat Containerfile FROM registry.redhat.io/rhel9/rhel-bootc:9.6 # Packages RUN dnf install -y zsh && dnf clean all # Group install RUN dnf group -y install "Development Tools" # Hostname RUN echo "rock.paper.scissor" > /etc/hostname # Kernel RUN mkdir -p /usr/lib/bootc/kargs.d RUN cat <<EOF >> /usr/lib/bootc/kargs.d/console.toml kargs = ["console=ttyS0,114800n8","kernel-debug"] match-architectures = ["x86_64"] EOF # Subscription-manager RUN dnf install subscription-manager # RPM config RUN mkdir -p /etc/pki/rpm-gpg/ COPY <host_path>/gpg_key /etc/pki/rpm-gpg/gpg_key # Timezones RUN cat <<EOF >> /etc/localtime Asia/Bangkok EOF # Locale RUN ca…
$ podman build -t quay.io/<namespace>/<image>:<tag> .- 注意:注意 将镜像模式用于容器原生工作流的 RHEL 路径。要创建标准的 RHEL 9.6 和之后的 Edge 镜像,您仍然可以使用 RHEL 镜像构建器。请参阅 制作、安装和管理 RHEL for Edge 镜像。
2.4.2. 使用镜像模式构建 RHEL 10 及更新的版本 for Edge 镜像
- 要点:要在边缘计算环境的 RHEL 10 镜像中构建、部署和管理可引导容器 RHEL for Edge 镜像,请使用镜像模式。
- 要点:先决条件
- 列表:Podman 已安装在主机上。
- 列表:以 --privileged 模式运行容器的 root 访问权限。
- 列表:创建一个 Containerfile。例如: $ cat Containerfile FROM registry.redhat.io/rhel10/rhel-bootc:10.0 # Packages RUN dnf install -y zsh && dnf clean all # Group install RUN dnf group -y install "Development Tools" # Kernel RUN mkdir -p /usr/lib/bootc/kargs.d RUN cat <<EOF >> /usr/lib/bootc/kargs.d/console.toml kargs = ["console=t…
- 列表:构建 <image>。在当前目录中使用 Containerfile : $ podman build -t quay.io/<namespace>/<image>:<tag> .
- 列表:列出所有镜像: $ podman images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/<namespace>/<image> latest b28cd00741b3 About a minute ago 2.1 GB
- 列表:在 RHEL 的镜像模式下管理用户、组、SSH 密钥和 secret
- 命令/配置摘录:
$ cat Containerfile FROM registry.redhat.io/rhel10/rhel-bootc:10.0 # Packages RUN dnf install -y zsh && dnf clean all # Group install RUN dnf group -y install "Development Tools" # Kernel RUN mkdir -p /usr/lib/bootc/kargs.d RUN cat <<EOF >> /usr/lib/bootc/kargs.d/console.toml kargs = ["console=ttyS0,114800n8","kernel-debug"] match-architectures = ["x86_64"] EOF # Subscription-manager COPY ./rhsm.conf /etc/rhsm/rhsm.conf # RPM config RUN mkdir -p /etc/pki/rpm-gpg/ COPY <host_path>/gpg_key /etc/pki/rpm-gpg/gpg_key # Additional groups RUN groupadd -g 1001 widget # Timezones RUN ln -sf /usr/share/zoneinfo/Asia/Bangkok /etc/localtime # Locale RUN…
$ podman build -t quay.io/<namespace>/<image>:<tag> .- 注意:注意 您不能使用 bootc-image-builder 创建某些镜像类型。这是因为不是所有 RHEL 镜像构建器类型都可用于 RHEL 的镜像模式。值得注意的是,simplified-installer 不再存在。反之,使用 bootc-image-builder Anaconda ISO。
2.5. 安装 bootc-image-builder
- 要点:要安装 bootc-image-builder,请使用 Red Hat Container Registry。bootc-image-builder 旨在用作容器,它不作为 RHEL 中的 RPM 软件包提供。
- 要点:先决条件
- 列表:container-tools 元数据软件包已安装。元数据软件包包含所有容器工具,如 Podman、Buildah 和 Skopeo。
- 列表:您已认证到 registry.redhat.io。详情请参阅 红帽容器注册中心身份验证。
- 列表:登录 registry.redhat.io 进行身份验证: $ sudo podman login registry.redhat.io
- 列表:安装 bootc-image-builder 工具: $ sudo podman pull registry.redhat.io/rhel10/bootc-image-builder
- 列表:列出拉取到本地系统的所有镜像: $ sudo podman images REPOSITORY TAG IMAGE ID CREATED SIZE registry.redhat.io/rhel10/bootc-image-builder latest b361f3e845ea 24 hours ago 676 MB
- 列表:Red Hat Container Registry 身份验证
- 命令/配置摘录:
$ sudo podman login registry.redhat.io
$ sudo podman pull registry.redhat.io/rhel10/bootc-image-builder2.5.1. 使用 bootc-image-builder 创建 RHEL 9.6 磁盘镜像
- 要点:您可以使用 bootc-image-builder 从现有容器镜像创建可引导磁盘镜像。然后,您可以使用传统方法为物理或虚拟主机部署这些磁盘镜像。
- 要点:先决条件
- 列表:您已在主机机器上安装了 Podman。
- 列表:您有 root 访问权限来运行 bootc-image-builder 工具,并在 --privileged 模式下运行容器以构建镜像。
- 列表:可选:创建一个 config.toml 来配置用户访问。例如: [[customizations.user]] name = "user" password = "pass" key = "ssh-rsa AAA ... user@email.com" groups = ["wheel"]
- 列表:手动拉取镜像: $ sudo podman pull quay.io/quay.io/<namespace>/<image>:<tag>
- 列表:为您要构建的镜像创建 output 目录: $ mkdir output
- 列表:运行 bootc-image-builder 来创建该镜像。如果您不想添加任何配置,请省略 -v $(pwd)/config.toml:/config.toml 参数。 $ sudo podman run \ --rm \ -it \ --privileged \ --pull=newer \ --security-opt label=type:unconfined_t \ -v /var/lib/containers/storage:/var/lib/containers/storage \ -v $(pwd)/config.toml:/config.toml \ -v $(pwd)/output:/output…
- 命令/配置摘录:
[[customizations.user]] name = "user" password = "pass" key = "ssh-rsa AAA ... user@email.com" groups = ["wheel"]
$ sudo podman pull quay.io/quay.io/<_namespace_>/<_image_>:<_tag_>- 注意:警告 在带有现有操作系统或数据的机器上引导 ISO 可能是破坏性的,因为 Kickstart 被配置为自动重新格式化系统上的第一块磁盘。
2.5.2. 使用 bootc-image-builder 创建 RHEL 10.0 磁盘镜像
- 要点:从 RHEL 10 及更高版本开始,RHEL 镜像构建器不再支持为 Edge 优化的自定义 RHEL rpm-ostree 镜像。要作为 RHEL 10 的一部分为 Edge 环境创建新的 RHEL 镜像,您必须使用 RHEL 的镜像模式。
- 要点:先决条件
- 列表:您已在主机机器上安装了 Podman。
- 列表:您有 root 访问权限来运行 bootc-image-builder 工具,并在 --privileged 模式下运行容器以构建镜像。
- 列表:可选:创建一个 config.toml 来配置用户访问。例如: [[customizations.user]] name = "user" password = "pass" key = "ssh-rsa AAA ... user@email.com" groups = ["wheel"]
- 列表:手动拉取镜像: $ sudo podman pull quay.io/<namespace>/<image>:<tag>
- 列表:为您要构建的镜像创建 output 目录: $ mkdir output
- 列表:运行 bootc-image-builder 来创建该镜像。如果您不想添加任何配置,请省略 -v $(pwd)/config.toml:/config.toml 参数。 $ sudo podman run \ --rm \ -it \ --privileged \ --pull=newer \ --security-opt label=type:unconfined_t \ -v /var/lib/containers/storage:/var/lib/containers/storage \ -v $(pwd)/config.toml:/config.toml \ -v $(pwd)/output:/output…
- 命令/配置摘录:
[[customizations.user]] name = "user" password = "pass" key = "ssh-rsa AAA ... user@email.com" groups = ["wheel"]
$ sudo podman pull quay.io/<namespace>/<image>:_<tag>_- 注意:注意 并非所有可用的 RHEL 镜像构建器工件在镜像模式下都可用。这意味着您无法使用 bootc-image-builder 创建某些镜像类型。simplified-installer 不再存在。相反,请使用 bootc-image-builder Anaconda ISO 执行 FDO 工作流。
- 注意:警告 在具有现有操作系统或数据的机器上引导 ISO 镜像可能会具有破坏性,并导致数据丢失。
2.6. 在 Containerfile 中配置用户和组
- 要点:要跨基础架构保持一致权限,请在 Containerfile 中定义持久的用户和组。这样可确保在执行 bootc switch 来迁移主机时权限保持不变。
- 要点:先决条件
- 列表:一个现有的基于 RHEL for Edge rpm-ostree 的系统。
- 列表:订阅的 RHEL 9 系统。如需更多信息,请参阅 RHEL 系统注册入门文档。
- 列表:容器 registry。您可以在本地创建注册中心,或者在 Quay.io 服务上创建一个免费帐户。请参阅 Red Hat Quay.io 页面。
- 列表:具有生产或开发人员订阅的红帽帐户。Red Hat Enterprise Linux Overview 页面提供免费的开发者订阅。
- 列表:对 registry.redhat.io 进行身份验证。如需更多信息,请参阅 Red Hat Container Registry 身份验证。
- 列表:从 RHEL for Edge 系统中提取用户和组信息: $ mkdir -p ./usr/lib $ ssh admin@192.168.100.50 'cat /lib/passwd' > ./usr/lib/passwd $ ssh admin@192.168.100.50 'cat /lib/group' > ./usr/lib/group
- 命令/配置摘录:
$ mkdir -p ./usr/lib $ ssh admin@192.168.100.50 'cat /lib/passwd' > ./usr/lib/passwd $ ssh admin@192.168.100.50 'cat /lib/group' > ./usr/lib/group
FROM registry.redhat.io/rhel9/rhel-bootc WORKDIR /tmp RUN dnf -y install ModemManager \ NetworkManager-wifi \ NetworkManager-wwan \ audit \ checkpolicy \ clevis \ clevis-dracut \ clevis-luks \ clevis-pin-tpm2 \ clevis-systemd \ containernetworking-plugins \ dnsmasq \ dracut-config-generic \ fdo-client \ fdo-owner-cli \ firewalld \ firewalld-filesystem \ greenboot \ greenboot-default-health-checks \ grubby \ ignition \ ignition-edge \ ipset \ iwl100-firmware \ iwl1000-firmware \ iwl105-firmware \ iwl135-firmware \ iwl2000-firmware \ iwl2030-firmware \ iwl3160-firmware \ iwl5000-firmware \ iwl5150-firmware \ iwl…- 注意:重要 用户和组 ID 在 rhel-bootc 镜像和 RHEL for Edge 之间有所不同。这会影响多个组和用户,如 ssh_keys。因此,私钥属于错误配置的 ID 的组,您将无法使用公钥来访问边缘系统。
2.7. SSH 和所有权问题的故障排除
- 要点:将 RHEL for Edge 系统切换到基于镜像模式的系统时,您可能会遇到身份偏移。
- 要点:这意味着新可引导容器中的用户 ID (UID)或组 ID (GID)与原始系统上的 ID 不匹配。这会影响 /var 目录中的 SSH 访问和文件所有权。
- 列表:一个现有的基于 RHEL for Edge rpm-ostree 的系统。
- 列表:订阅的 RHEL 9 系统。如需更多信息,请参阅 RHEL 系统注册入门文档。
- 列表:容器 registry。您可以在本地创建注册中心,或者在 Quay.io 服务上创建一个免费帐户。请参阅 Red Hat Quay.io 页面。
- 列表:具有生产或开发人员订阅的红帽帐户。Red Hat Enterprise Linux Overview 页面提供免费的开发者订阅。
- 列表:对 registry.redhat.io 进行身份验证。如需更多信息,请参阅 Red Hat Container Registry 身份验证。
- 列表:检查 SSH 的 GID 是否存在不匹配: 在该设备中,检查 ssh_keys 组的当前 ID: $ getent group ssh_keys 将当前的 ID 与授权密钥的所有者进行比较: $ ls -ln /home/admin/.ssh/authorized_keys 如果 ls 输出中的数字 GID 与 getent 输出不匹配,则 SSH 身份验证会失败。 修复 /var 中的持久权限问题。 /var 目录中的数据在更新过程中会保持。如果您的 Containerfile 使用与之前的操作系统不同的 UID,/var 中的文件归孤立 ID 所有。 识别所有者为未知数字 ID 的文件。 $ find /var -nouser…
- 命令/配置摘录:
$ getent group ssh_keys
$ ls -ln /home/admin/.ssh/authorized_keys2.7.1. 将 RHEL 9.6 原始镜像部署转换为镜像模式
- 要点:当您将 RHEL 的 原始 镜像转换为镜像模式时,您可以将当前的操作系统 rebase 到可引导的容器镜像。然后,您可以将 bootc update 工作流用于将来的生命周期管理。
- 要点:先决条件
- 列表:安装了 原始 镜像的现有 RHEL for Edge 9.6。
- 列表:更新您的镜像。请参阅 更新 RHEL for Edge 镜像。
- 列表:将现有镜像从 RHEL 镜像构建器切换到镜像模式。 从 rhel-bootc 构建镜像。例如: $ cat Containerfile FROM registry.redhat.io/rhel9/rhel-bootc:latest RUN dnf install -y \ clevis \ clevis-dracut \ clevis-luks \ fdo-client \ fdo-owner-cli
- 列表:从 rhel-bootc 构建镜像。例如: $ cat Containerfile FROM registry.redhat.io/rhel9/rhel-bootc:latest RUN dnf install -y \ clevis \ clevis-dracut \ clevis-luks \ fdo-client \ fdo-owner-cli
- 列表:使用当前目录中的 Containerfile 构建 <image> 镜像: $ podman build -t quay.io/<namespace>/<image>:<tag> .
- 列表:将镜像推送到注册中心。 $ podman push quay.io/<namespace>/<image>:<tag>
- 命令/配置摘录:
$ cat Containerfile FROM registry.redhat.io/rhel9/rhel-bootc:latest RUN dnf install -y \ clevis \ clevis-dracut \ clevis-luks \ fdo-client \ fdo-owner-cli
$ podman build -t quay.io/<namespace>/<image>:<tag> .2.7.2. 将 RHEL 9.6 for Edge 简化安装程序部署转换为镜像模式
- 要点:您可以使用 simplified-installer 将 Edge 系统部署的现有 RHEL 9.6 及更新的版本转换为 RHEL 的镜像模式。生成的可引导容器镜像会变为动态的 bootc 工作流,而无需物理重新安装。
- 要点:先决条件
- 列表:使用 simplified-installer 安装的现有 9.6 或更高版本的 RHEL for Edge。
- 列表:检查是否已安装了 bootc : $ rpm -qa | bootc 将您的镜像更新至最新的 rpm-ostree 安装。请参阅 更新 RHEL for Edge 镜像。 从 rhel-bootc 构建镜像。例如: $ cat Containerfile FROM registry.redhat.io/rhel9/rhel-bootc:latest RUN dnf install -y \ clevis \ clevis-dracut \ clevis-luks \ fdo-client \ fdo-owner-cli
- 列表:从 rhel-bootc 构建镜像。例如: $ cat Containerfile FROM registry.redhat.io/rhel9/rhel-bootc:latest RUN dnf install -y \ clevis \ clevis-dracut \ clevis-luks \ fdo-client \ fdo-owner-cli
- 列表:使用当前目录中的 Containerfile 构建 <image> 镜像: $ podman build -t quay.io/<namespace>/<image>:<tag> . 将镜像推送到注册中心。 $ podman push quay.io/<namespace>/<image>:<tag> 运行 bootc switch,将设备切换到您推送到注册中心的镜像。 $ bootc switch quay.io/<namespace>/<image>:<tag> 运行 systemctl reboot。 $ sudo systemctl reboot
- 列表:将镜像推送到注册中心。 $ podman push quay.io/<namespace>/<image>:<tag>
- 列表:运行 bootc switch,将设备切换到您推送到注册中心的镜像。 $ bootc switch quay.io/<namespace>/<image>:<tag>
- 命令/配置摘录:
$ rpm -qa | bootc
$ cat Containerfile FROM registry.redhat.io/rhel9/rhel-bootc:latest RUN dnf install -y \ clevis \ clevis-dracut \ clevis-luks \ fdo-client \ fdo-owner-cli2.7.3. 将现有 RHEL for Edge 9.6 升级到 RHEL 10 及更新版本的镜像模式
- 要点:您可以使用 RHEL 的镜像模式将现有 RHEL for Edge 9.6 系统升级到 RHEL 10.0。通过将当前系统转换为 bootc 工作流,您可以使用容器镜像管理主机更新,同时保留现有的边缘部署。
- 要点:先决条件
- 列表:现有 9.6 或更高版本的 RHEL for Edge 系统。
- 列表:更新您的镜像。请参阅 更新 RHEL for Edge 镜像。 $ sudo rpm-ostree upgrade $ sudo systemctl reboot
- 列表:构建一个使用 RHEL 10.0 的 bootc 镜像。例如: $ cat Containerfile FROM registry.redhat.io/rhel10/rhel-bootc:10.0 RUN dnf install -y \ clevis \ clevis-dracut \ clevis-luks \ fdo-client \ fdo-owner-cli
- 列表:使用当前目录中的 Containerfile 构建 <image> 镜像: $ podman build -t quay.io/<namespace>/<image>:<tag> .
- 列表:将镜像推送到注册中心。 $ podman push quay.io/<namespace>/<image>:<tag>
- 列表:在设备上运行 bootc switch。 $ bootc switch quay.io/<namespace>/<image>:<tag>
- 命令/配置摘录:
$ sudo rpm-ostree upgrade $ sudo systemctl reboot
$ cat Containerfile FROM registry.redhat.io/rhel10/rhel-bootc:10.0 RUN dnf install -y \ clevis \ clevis-dracut \ clevis-luks \ fdo-client \ fdo-owner-cli第 3 章 使用 FDO 客户端和服务器自动置备和注册 RHEL for Edge 设备
- 要点:您可以使用 go-fdo-client 和 go-fdo-server RPM 部署 FIDO Device Onboarding (FDO)客户端和服务器的基于 Go 的实现。此 FIDO Device Onboarding 协议版本启用了边缘设备的安全、自动、零接触置备。
- 注意:重要 基于 Go 的实现与原始 FDO RPM 和保持在技术预览中的容器镜像不兼容。不要将 go-fdo-* 软件包与 fdo-* 软件包或容器一起使用。
3.1. FDO 信任模型过程概述
- 要点:您可以使用 FIDO 设备加入(FDO)自动和安全地将新设备集成到互联网(IoT)基础架构中。FDO 验证设备真实性,保护配置过程,并在安装时将每台设备与您现有的基础架构同步。
- 要点:FDO 提供以下功能:
- 列表:提供零接触流程,以便大规模将新设备加入所有者管理平台。
- 列表:在交换敏感信息之前,加密地验证设备的真实性和所有权。
- 列表:使用安全加密通信通道在不受信任的网络中置备设备。
- 列表:在设备加入过程中应用所有权凭据和配置,而不是在设备管理(后绑定)期间应用所有权凭据和配置。
- 列表:设备初始化:设备制造商执行第一阶段。在此阶段,制造商会将设备配置为在购买后执行加入。完成此阶段后: 设备存储一组凭据来证明其身份。 制造商创建了所有权凭证(Ownership Voucher),它是一个数字文档,证明设备的所有权链。 该设备接收全局唯一标识符(GUID)。
- 列表:设备存储一组凭据来证明其身份。
3.2. FDO 系统的组件
- 要点:FIDO 设备加入(FDO)加入了设备侧的客户端应用程序和三个专用的 FDO 服务器:Manufacturing、 Rendezvous 和 Owner。
- 要点:这个应用程序安装在该设备中,并执行以下操作:
- 列表:在设备制造过程中,客户端应用程序利用制造服务器的帮助初始化设备的 FDO 状态。
- 列表:当最终所有者安装设备时,客户端应用程序将使用 Rendezvous 和 Owner FDO 服务器协同执行设备接入流程。
3.3. FDO 工作流
- 要点:FDO 工作流由两个主要阶段组成,它们将设备从 manufacturing 移到一个完全配置的操作状态。
- 要点:设备初始化(FDO DI 协议)
- 列表:设备初始化(FDO DI 协议) 设备客户端联系制造商服务器。 客户端和服务器生成凭证,这些凭据由客户端存储在设备上。 制造商服务器会生成所有权凭证,其中包含 rendezvous 服务器的网络地址,或如果采用 rendezvous (RV)绕过,则包含 Owner 服务器的地址。 制造商服务器为设备分配全局唯一标识符(GUID)。 设备初始化完成,设备已准备好在所有者工具中接入。
- 列表:设备客户端联系制造商服务器。
- 列表:客户端和服务器生成凭证,这些凭据由客户端存储在设备上。
- 列表:制造商服务器会生成所有权凭证,其中包含 rendezvous 服务器的网络地址,或如果采用 rendezvous (RV)绕过,则包含 Owner 服务器的地址。
- 列表:制造商服务器为设备分配全局唯一标识符(GUID)。
- 列表:设备初始化完成,设备已准备好在所有者工具中接入。
3.4. FDO 的加密凭证
- 要点:要使用 FIDO 设备加入(FDO)进程,您必须提供加密凭证,如证书和私钥,以满足其安全保证。部署 FDO 的一方必须提供这些证书; FDO 软件包不提供它们。
- 要点:FDO 协议操作需要以下证书和私钥:
3.5. 为单主机评估生成测试证书
- 要点:使用 go-fdo-server 实用程序脚本生成自签名测试证书。这个工具适用于 Manufacturer、Rendezvous 和 Owner 服务器都位于相同的物理或虚拟主机上时的开发和测试环境。
- 要点:先决条件
- 列表:RHEL 10 Linux 系统处于镜像模式(bootc)
- 列表:在本地安装的 go-fdo-server RPM: 证书生成脚本是服务器软件包的组件
- 列表:设备和 FDO 服务器之间的网络连接
- 列表:生成所有必需的密钥和证书文件: $ sudo /usr/libexec/go-fdo-server/generate-go-fdo-server-certs.sh 此脚本将生成的密钥和证书文件写入 /etc/pki/go-fdo-server/ 目录中,并在以下文件中设置适当的权限:
- 列表:manufacturer-example.key:: 制造商私钥文件。
- 列表:manufacturer-example.crt:: 制造商公共证书文件。
- 命令/配置摘录:
$ sudo /usr/libexec/go-fdo-server/generate-go-fdo-server-certs.sh- 注意:警告 这些证书仅适用于测试和演示目的。它们使用不适合生产环境或分布式环境的共享目录结构。
3.6. 安装 FDO 制造服务器
- 要点:安装 go-fdo-server-manufacturer RPM 软件包,以部署制造服务器。此服务负责执行设备初始化并发出初始设备凭证。
- 要点:先决条件
- 列表:已注册的 RHEL 10 系统
- 列表:启用订阅或仓库,其中包括 FDO 服务器软件包
- 列表:安装制造服务器软件包: $ sudo dnf install go-fdo-server-manufacturer
- 列表:验证制造服务器的 systemd 单元文件和默认配置目录是否已创建: $ sudo systemctl list-unit-files | grep go-fdo-server-manufacturer go-fdo-server-manufacturer.service disabled disabled
- 列表:通过将上一节中生成的测试证书移到制造商的配置路径中来配置证书。
- 列表:配置后,启用并启动该服务: $ systemctl enable --now go-fdo-server-manufacturer
- 命令/配置摘录:
$ sudo dnf install go-fdo-server-manufacturer
$ sudo systemctl list-unit-files | grep go-fdo-server-manufacturer3.7. 配置 FDO 制造服务器
- 要点:通过修改 YAML 格式的初始化文件并设置所需的文件权限,配置 FIDO Device Onboard (FDO)制造服务器。此过程可确保服务器具有必要的操作参数和安全控制来生成和签署设备凭据。
- 要点:先决条件
- 列表:您已安装了 FDO 制造服务器 RPM 软件包。
- 列表:您已从发布机构获取所需的证书和密钥。
- 列表:您有对服务器的管理(sudo)访问权限。
- 列表:通过将您的机构提供的所有证书和密钥移至 /etc/pki/go-fdo-server/ 目录中来安装所需的凭据。
- 列表:保护证书和密钥文件。需要设置受限权限,以保护凭据的完整性。设置私钥的所有权和权限,以便只能被 go-fdo-server-manufacturer 用户访问: $ sudo chown go-fdo-server-manufacturer:go-fdo-server /etc/pki/go-fdo-server/device-ca.key /etc/pki/go-fdo-server/manufacturer.key $ sudo chmod 600 /etc/pki/go-fdo-server/device-ca.key /etc/pki/go-fdo-server/manufacturer.key
- 列表:修改 /etc/go-fdo-server/manufacturing.yaml 配置文件,以定义您的操作参数。 注意 默认情况下,对此文件的访问仅限于 go-fdo-server 组。
- 命令/配置摘录:
$ sudo chown go-fdo-server-manufacturer:go-fdo-server /etc/pki/go-fdo-server/device-ca.key /etc/pki/go-fdo-server/manufacturer.key
$ sudo chmod 600 /etc/pki/go-fdo-server/device-ca.key /etc/pki/go-fdo-server/manufacturer.key- 注意:注意 默认情况下,对此文件的访问仅限于 go-fdo-server 组。
3.8. 运行 FDO 制造服务器
- 要点:FIDO Device Onboarding (FDO)制造服务器为管理任务和设备通信提供了一个 HTTP 接口。必须具备网络访问能力,才能处理初始化请求、管理设备凭据,并执行设备初始化(Device Initialization,DI)协议。
- 要点:先决条件
- 列表:已安装 go-fdo-server-manufacturer RPM 软件包。
- 列表:测试证书会生成并存储在 /etc/pki/go-fdo-server/ 目录中。
- 列表:使用有效的路径和端口设置更新服务器配置文件。
- 列表:您有 root 权限。
- 列表:在 firewalld 服务中打开制造服务器的默认端口: $ sudo firewall-cmd --add-port=8038/tcp --permanent 注意 如果您在配置文件中自定义 http.port 参数,请使用该端口号而不是默认值。 如果更改了默认端口,您则必须在 SELinux 中为新端口配置相应的安全标签,以使 go-fdo-server 服务能够绑定到该端口。如果不这样做,可能会导致服务无法启动或被安全策略阻止。 要允许通过自定义端口(例如 8040)进行通信,请运行以下命令来安装 policycoreutils-python-utils 软件包以使用 semanage 命令。 $ sudo semanage…
- 列表:重新载入防火墙以应用更改: $ sudo firewall-cmd --reload
- 命令/配置摘录:
$ sudo firewall-cmd --add-port=8038/tcp --permanent
$ sudo semanage port -a -t fdo_port_t -p tcp 8040- 注意:注意 如果您在配置文件中自定义 http.port 参数,请使用该端口号而不是默认值。 如果更改了默认端口,您则必须在 SELinux 中为新端口配置相应的安全标签,以使 go-fdo-server 服务能够绑定到该端口。如果不这样做,可能会导致服务无法启动或被安全策略阻止。 要允许通过自定义端口(例如 8040)进行通信,请运行以下命令来安装 policycoreutils-python-utils 软件包以使用 semanage 命令。 $ sudo semanage port -a -t fdo_port_t -p tcp 8040
3.9. HTTPS 和数据库的配置参考
- 要点:检查保护网络流量并确保可靠的数据持久性所需的 HTTPS 和数据库参数。使用这些设置强化您的环境,并在应用程序和数据层之间保持稳定的连接。
3.9.1. HTTPS 要求
- 要点:要启用 HTTPS,必须同时为证书和私钥提供路径。仅提供一个路径将导致连接错误。
3.9.2. 数据库连接(db.dsn)
- 要点:Data Source Name (db.dsn)的语法完全取决于您选择的 db.type :
- 表格样本(共 3 行):
- 数据库类型(db.type) | 连接字符串语法(db.dsn)
- SQLite | file:<database_file>.db
- PostgreSQL | host=<hostname> port=<port_number> user=<username> password=<password> dbname=<database_name>
3.10. 安装 FDO Rendezvous 服务器
- 要点:安装 go-fdo-server-rendezvous RPM 软件包,以部署 Rendezvous 服务器。此服务器充当在加入过程中将设备重定向到其分配的 Owner 服务器的目录。
- 要点:先决条件
- 列表:您已注册了一个 bootc Red Hat Enterprise Linux (RHEL) 10 系统。
- 列表:您有 sudo 权限。
- 列表:您可以访问包含 FDO 服务器软件包的存储库。
- 列表:安装 Rendezvous 服务器软件包: $ sudo dnf install go-fdo-server-rendezvous 软件包安装几个文件,创建 go-fdo-server 组和 go-fdo-server-rendezvous 用户,并安装运行 Rendezvous 服务器的 systemd 服务。
- 命令/配置摘录:
$ sudo dnf install go-fdo-server-rendezvous3.11. 运行 FDO Rendezvous 服务器
- 要点:Rendezvous 服务器在接入过程中充当中央目录。其 HTTP 端点必须可以被设备、所有者服务器以及管理员访问。
- 要点:先决条件
- 列表:您已在本地安装了 go-fdo-server-rendezvous RPM。
- 列表:您已配置了 rendezvous-server.conf.d 文件,特别是 http.port (默认为 8041)。
- 列表:您有管理访问权限。
- 列表:在 firewalld 服务中打开服务器的 HTTP 端口: $ sudo firewall-cmd --add-port=8041/tcp --permanent $ sudo firewall-cmd --reload
- 列表:使用 systemd 服务启用并启动 Rendezvous 服务器: $ sudo systemctl enable --now go-fdo-server-rendezvous.service
- 列表:验证服务器状态: $ sudo systemctl status go-fdo-server-rendezvous.service ● go-fdo-server-rendezvous.service - Go FDO Rendezvous server Loaded: loaded (/usr/lib/systemd/system/go-fdo-server-rendezvous.service; enabled; preset: disabled) Active: active (running) since Fri 2026-03-20 17:21:34 EDT; 16h ago
- 命令/配置摘录:
$ sudo firewall-cmd --add-port=8041/tcp --permanent
$ sudo firewall-cmd --reload- 表格样本(共 8 行):
- 参数 | 描述
- log.level | 日志记录级别。允许的值: debug、info (默认)、warn 和 error。
- db.type | 数据库类型。允许的值: sqlite 和 postgres。
- db.dsn | 数据库连接字符串(例如,file:database.db 用于 SQLite,或 host=localhost port=5432 user=postgres password=secret dbname=mydb 用于 PostgreSQL)。
3.12. 高级 Rendezvous 配置(TO0)
- 要点:对于大多数部署,默认的 Rendezvous 设置就足够了。要管理服务器负载和设备签到频率,可调整 Transfer of Ownership Protocol 0(TO0)的等待时间间隔。
- 要点:下表描述了 TO0 等待间隔参数。
- 表格样本(共 3 行):
- 参数 | 描述
- rendezvous.to0_min_wait | 可选:设备必须在 TO0 请求之间等待的最小等待时间(以秒为单位)。如果设备尝试更频繁地检查这个值,请求会失败。默认: 0(不设置最小等待时间)。
- rendezvous.to0_max_wait | 可选: TO0 条目允许的最大等待时间(以秒为单位)。这定义了设备检查间隔的上限。默认:3600 (1 小时)。
3.13. 安装 FDO 所有者服务器
- 要点:安装 go-fdo-server-owner RPM 软件包,以部署所有者服务器来执行设备接入。
- 要点:流程
- 列表:安装 go-fdo-server-owner 软件包: $ sudo dnf install go-fdo-server-owner 软件包安装多个文件,创建 go-fdo-server 组和 go-fdo-server-owner 用户,再安装用于运行所有者服务器的 systemd 服务。
- 列表:验证所有者服务器的 systemd 单元文件是否可用: $ sudo systemctl list-unit-files | grep go-fdo-server-owner go-fdo-server-owner.service disabled
- 命令/配置摘录:
$ sudo dnf install go-fdo-server-owner
$ sudo systemctl list-unit-files | grep go-fdo-server-owner3.14. 配置 FDO 所有者服务器
- 要点:要配置 FDO 所有者服务器,请修改 YAML 格式的配置文件,并确保服务器有权访问所需的证书和密钥。服务器在初始化期间读取此文件,以建立数据库连接、网络端点和安全凭据。
- 要点:先决条件
- 列表:您已安装了 go-fdo-server-owner RPM 软件包。
- 列表:您已从发布机构中获取所需的 FDO 证书和密钥。
- 列表:您已将证书和密钥安装到 /etc/pki/go-fdo-server 目录中。
- 列表:在文本编辑器中打开 /etc/go-fdo-server/owner.yaml 配置文件。
- 列表:为以下必填配置项指定值: 数据库配置 :服务器数据库的连接详情。 HTTP 端点地址:服务器侦听请求的地址。 设备 CA 证书路径 :到设备 CA 证书文件的路径。 所有者服务器公共证书路径:所有者服务器的公共证书文件的路径。 所有者服务器私钥路径:所有者服务器的私钥文件的路径。
- 列表:数据库配置 :服务器数据库的连接详情。
- 命令/配置摘录:
$ sudo chown go-fdo-server-owner:go-fdo-server /etc/pki/go-fdo-server/owner.key
$ sudo chmod 600 /etc/pki/go-fdo-server/owner.key3.15. FDO ServiceInfo 模块(FSIMs)
- 要点:FDO ServiceInfo 模块(FSIM)在 TO2 协议交换过程中启用自动设备置备。FSIM 提供凭证、配置和脚本,将设备从 factory-default 状态更改为所有者基础架构中完全可运行的受管资产。
- 要点:使用 FIDO Device Onboard (FDO),您可以使用 FDO ServiceInfo 模块(FSIM)从所有者服务器执行管理操作。例如,您可以使用 FSIMs 将文件下载到设备中,从设备上传文件,并在设备上运行命令。
- 列表:fdo.download :将文件下载到设备的文件系统。
- 列表:fdo.upload :从设备的文件系统中上传文件。
- 列表:fdo.wget: 将文件从 HTTP 服务器下载到设备的文件系统。
- 列表:fdo.command: 在设备上运行命令。
3.16. 为设备置备配置 FDO ServiceInfo 模块(FSIM)
- 要点:您可以使用 FIDO Device Onboard (FDO) ServiceInfo 模块(FSIM)在接入过程中自动执行设备上的任务,如下载文件、运行命令或获取大型有效负载。要使用 FSIMs,您必须在 Owner 服务器配置文件中添加 fsim 部分。
- 要点:先决条件
- 列表:您有对 Owner 服务器的管理访问权限。
- 列表:FDO Owner 服务器已安装,且 /etc/go-fdo-server/owner.yaml 中的基本配置已完成。
- 列表:任何旨在通过 fdo.download 模块下载的本地脚本或文件都存储在 go-fdo-server 用户可访问的目录中,如 /var/lib/go-fdo-server-owner/scripts/。
- 列表:在文本编辑器中打开您的 Owner 服务器配置文件(例如 /etc/go-fdo-server/owner.yaml)。
- 列表:定义 fsim 部分并添加所需的模块。以下示例使用 fdo.wget 配置脚本下载、命令执行和大型文件下载: log: level: "info" db: type: "sqlite" dsn: "file:/var/lib/go-fdo-server-owner/db.sqlite" http: ip: "0.0.0.0" port: "8043" device_ca: cert: "/etc/pki/go-fdo-server/device-ca.crt" owner: cert: "/etc/pki/go-fdo-server/owner.crt" key: "/etc/pki/go-fdo-server/o…
- 列表:保存文件并重启 Owner 服务器服务以应用配置: $ sudo systemctl restart fdo-owner-server
- 命令/配置摘录:
log: level: "info" db: type: "sqlite" dsn: "file:/var/lib/go-fdo-server-owner/db.sqlite" http: ip: "0.0.0.0" port: "8043" device_ca: cert: "/etc/pki/go-fdo-server/device-ca.crt" owner: cert: "/etc/pki/go-fdo-server/owner.crt" key: "/etc/pki/go-fdo-server/owner.key" fsim: - module: "fdo.download" files: - src: "/var/lib/go-fdo-server-owner/scripts/setup-env.sh" dst: "/usr/local/bin/setup-env.sh" permissions: "0755" - module: "fdo.command" commands: - command: ["/usr/local/bin/setup-env.sh", "--init"] description: "Initializing environment" - module: "fdo.wget" files: - src: "http://distribution.example.com/images/worker-pa…
$ sudo systemctl restart fdo-owner-server3.17. 运行 FDO Owner 服务器
- 要点:为了在 TO2 协议期间进行管理和设备通信,请确保 FDO Owner 服务器的 HTTP 端点可访问。需要适当的网络路由,以支持安全所有权转移和运行 ServiceInfo 置备模块。
- 要点:前提条件
- 列表:网络可访问性.
- 列表:打开服务器的网络端口,确保系统防火墙不会阻止服务器的 HTTP 端点: $ sudo firewall-cmd --add-port=8043/tcp --permanent
- 列表:重启 firewalld 服务: $ sudo systemctl restart firewalld
- 列表:使用 systemd 服务启用并启动 Owner 服务器: $ sudo systemctl enable --now go-fdo-server-owner.service
- 列表:验证服务器是否活跃: $ sudo systemctl status go-fdo-server-owner.service ● go-fdo-server-owner.service - Go FDO owner server Loaded: loaded (/usr/lib/systemd/system/go-fdo-server-owner.service; enabled; preset: disabled) Active: active (running) since Sun 2026-03-22 16:35:04 EDT; 18s ago ...
- 列表:可选:验证服务器的网络端点是否正常工作并可以访问: $ curl http://192.168.124.132:8043/health {"message":"the service is up and running","status":"OK","version":"1.0.0"}
- 命令/配置摘录:
$ sudo firewall-cmd --add-port=8043/tcp --permanent
$ sudo systemctl restart firewalld3.18. 在 RHEL 10 中安装和配置 FIDO Device Onboard (FDO)客户端
- 要点:在 RHEL 10 镜像模式中,操作系统是不可变的。要部署 FDO 客户端,请在 Containerfile 中定义用于构建可引导容器镜像的软件包安装。这样可确保客户端在构建时被放入文件系统中。
- 要点:先决条件
- 列表:您有一个 Containerfile。
- 列表:您有一个采用镜像模式的 RHEL 10 Linux 系统(bootc)。
- 列表:FDO 服务器(Manufacturer、Rendezvous 和 Owner)已部署并可以访问。
- 列表:您在设备和 FDO 服务器之间有网络连接。
- 列表:使用 Containerfile 安装软件包: FROM registry.redhat.io/rhel10/rhel-bootc:10.2 #Install the go-fdo-client package using your distribution's package manager: RUN dnf install -y go-fdo-client && dnf clean all 注意 如果您计划将受信任的平台模块(TPM)用于凭证存储,还必须在 Containerfile 中安装 tpm2-tools。如需更多信息,请参阅 <Using_a_TPM>。
- 列表:构建容器镜像: $ podman build -t quay.io/example/fdo-client-bootc:latest -f Containerfile .
- 命令/配置摘录:
FROM registry.redhat.io/rhel10/rhel-bootc:10.2 #Install the go-fdo-client package using your distribution's package manager: RUN dnf install -y go-fdo-client && dnf clean all
$ podman build -t quay.io/example/fdo-client-bootc:latest -f Containerfile .- 注意:重要 FDO 仅在镜像模式(bootc)的 Red Hat Enterprise Linux (RHEL) 10 系统中被支持。
- 注意:注意 如果您计划将受信任的平台模块(TPM)用于凭证存储,还必须在 Containerfile 中安装 tpm2-tools。如需更多信息,请参阅 <Using_a_TPM>。
3.19. 配置 FDO 客户端
- 要点:要自定义 FIDO Device Onboard (FDO)客户端的行为以适合您的环境,请管理它与制造和j接入服务器交互的方式。
- 要点:配置 FDO 客户端的行为可确保设备可以在加入过程中安全地进行身份验证并接收其预期的凭证和软件包。
- 列表:您已在目标设备上安装了 go-fdo-client 软件包。
- 列表:您可以使用具有足够权限的命令行运行该客户端
- 列表:可选: 您有 YAML 或 TOML 格式的预定义配置文件。
- 列表:识别所需的配置参数。要查看特定子命令所有可用标志和选项的完整列表,请传入--help 标志: $ go-fdo-client <command> --help
- 列表:创建或编辑配置文件。您可以使用 YAML (.yaml、.yml)或 TOML (.toml)格式。确保配置中定义的所有文件路径要么是绝对路径,要么是相对于当前工作目录的相对路径。
- 列表:使用配置文件运行客户端。使用 --config 标志将客户端指向您的特定设置: $ go-fdo-client <command> --config /etc/fdo/config.yaml 注意 文件格式由 --config 路径中提供的扩展自动检测。
- 命令/配置摘录:
$ go-fdo-client <command> --help
$ go-fdo-client <command> --config /etc/fdo/config.yaml- 注意:注意 文件格式由 --config 路径中提供的扩展自动检测。
3.20. 使用 TPM 来存储设备凭证
- 要点:FIDO Device Onboard (FDO)客户端可以将设备凭证存储在受信任的平台模块(TPM)而不是文件中。这为凭证 secret 提供基于硬件的保护。
- 要点:先决条件
- 列表:您有一个 TPM 2.0 设备,如 /dev/tpmrm0。
- 列表:您已在 bootc 容器镜像中安装 tpm2-tools 软件包。
- 列表:您有 root 权限。
- 列表:使用 TPM 初始化设备: $ sudo go-fdo-client device-init http://manufacturer.example.com:8038 --key ec256 --tpm /dev/tpmrm0
- 列表:使用 TPM 运行 onboarding 命令: $ sudo go-fdo-client onboard --key ec256 --kex ECDH256 \ --tpm /dev/tpmrm0
- 命令/配置摘录:
$ sudo go-fdo-client device-init http://manufacturer.example.com:8038 --key ec256 --tpm /dev/tpmrm0
$ sudo go-fdo-client onboard --key ec256 --kex ECDH256 \ --tpm /dev/tpmrm03.21. 验证 FDO 设备凭证
- 要点:验证 FDO 设备凭证,以确保初始化过程成功,并确保设备已准备好进行安全载入。
- 要点:先决条件
- 列表:您已成功初始化该设备。
- 列表:已安装 fdo-client 或 go-fdo-client 软件包。
- 列表:您有 root 权限。
- 列表:使用适合您的存储方法的命令来验证凭证: 对于基于文件的存储: 如果在初始化过程中将凭据存储在引导目录中,请使用 --blob 标志来指向文件路径。 $ sudo go-fdo-client print --blob /boot/device_credential 对于基于受信任的平台模块(TPM)的存储: 如果设备使用硬件安全模块(HSM)或 TPM 来提高安全性,请使用 --tpm 标志并指定 TPM 资源管理器路径。 $ sudo go-fdo-client print --tpm /dev/tpmrm0
- 列表:对于基于文件的存储: 如果在初始化过程中将凭据存储在引导目录中,请使用 --blob 标志来指向文件路径。 $ sudo go-fdo-client print --blob /boot/device_credential
- 列表:对于基于受信任的平台模块(TPM)的存储: 如果设备使用硬件安全模块(HSM)或 TPM 来提高安全性,请使用 --tpm 标志并指定 TPM 资源管理器路径。 $ sudo go-fdo-client print --tpm /dev/tpmrm0
- 命令/配置摘录:
$ sudo go-fdo-client print --blob /boot/device_credential
$ sudo go-fdo-client print --tpm /dev/tpmrm03.22. 清除 FDO 设备凭证
- 要点:要停用设备,将设备重新用于新的环境,或者对接入失败进行故障排除,请清除 FDO 设备凭证。
- 要点:通过删除 FDO 设备凭据,您可以重置设备的身份,确保清除敏感的所有权元数据,并且设备已准备好从干净状态重新初始化。
- 列表:您有 root 权限。
- 列表:可选: 对于基于 TPM 的清除,已安装 tpm2-tools 软件包。
- 列表:所有正在进行的 onboarding 流程均已停止。
- 列表:使用适合您的存储类型的方法清除凭证: 对于基于文件的凭证: 从 /boot 目录或初始化过程中定义的特定位置中删除凭证 blob。 $ sudo rm /boot/device_credential 对于基于 TPM 的凭证: 如果凭证存储在受信任的平台模块(TPM)非易失性(NV)内存中,请释放特定的索引,通常为 FDO 的 0x01D10001。 $ sudo tpm2_nvundefine 0x01D10001
- 列表:对于基于文件的凭证: 从 /boot 目录或初始化过程中定义的特定位置中删除凭证 blob。 $ sudo rm /boot/device_credential
- 列表:对于基于 TPM 的凭证: 如果凭证存储在受信任的平台模块(TPM)非易失性(NV)内存中,请释放特定的索引,通常为 FDO 的 0x01D10001。 $ sudo tpm2_nvundefine 0x01D10001
- 命令/配置摘录:
$ sudo rm /boot/device_credential
$ sudo tpm2_nvundefine 0x01D100013.23. FDO 故障排除参考
- 要点:本参考文档介绍了 FIDO Device Onboard (FDO) 初始化和设备入网(Onboarding)过程中常见的问题,并提供相应的解决方案。使用这些解析和诊断命令来解决配置问题并确保成功进行所有权传输。
- 表格样本(共 7 行):
- 错误/问题 | 常见原因 | 解决方案
- TO1 failed | Rendezvous (RV)服务器没有该设备的记录。 | 确认所有权凭证(Ownership Voucher)已成功传输至所有者服务器。 确认所有者服务器使用 RV 服务器注册了设备。 验证所有者服务器指向正确的 RV 地址。 使用 go-fdo-client print 命令验证凭证 GUID 是否与设备 GUID 匹配。
- no rendezvous information found… | 设备凭证中缺少 RV 元数据。 | 使用 go-fdo-client print 命令验证凭据中的 RV 信息。 使用正确的 RV 数据配置制造服务器。 重新初始化设备。
- TLS Errors | 自签名证书或不受信任的证书颁发机构(CA)链。 | 在 device-init 或 onboard 命令中使用 --insecure-tls 标志。仅在测试环境中使用此标志。
3.23.1. 诊断命令:
- 要点:要进一步调查持久问题,请使用以下命令来收集元数据或详细日志。
- 要点:打印设备 GUID 和元数据:
- 命令/配置摘录:
$ sudo go-fdo-client print --blob /boot/device_credential
$ sudo go-fdo-client print --tpm /dev/tpmrm0- 注意:注意 大多数 TO1 失败是由于时序问题,或者制造商配置的 Rendezvous 信息与所有者服务器上传所有权凭证的目标位置不匹配所引起的。始终验证 manufacturing.yaml 文件中的 "Rendezvous Server Info" 是否与当前运行的 RV 服务器地址匹配。
第 4 章 使用 FDO 自动完成 RHEL for Edge 设备预配置和入网
- 要点:使用 RHEL 的镜像模式构建为边缘部署优化的操作系统镜像。这些镜像支持 FIDO Device Onboarding (FDO)过程,它可自动进行设备置备,并使用您的网络基础架构安全地集成您的边缘设备。
- 要点:FIDO Device Onboarding (FDO)过程会自动置备和载入边缘设备,并与连接到网络的其他设备和系统交换数据。
- 注意:重要 红帽提供了 FDO 进程作为技术预览功能。由于此功能在开发过程中,请确保仅在安全网络上部署并测试它。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
4.1. FIDO Device Onboarding (FDO) 进程概述
- 要点:使用FIDO 设备加入(FDO)安全地将新设备加入 IoT 架构。通过使用 FDO,您可以验证设备的真实性、部署配置,并确保每个设备被信任并在安装时与基础架构同步。
- 要点:FDO 协议提供以下优点和功能:
- 列表:大规模自动加入设备,而无需技术人员在边缘位置。
- 列表:在制造阶段执行设备初始化,并在以后为实际用途执行设备绑定。
- 列表:在注册和传递配置前,通过加密方式识别系统身份来解决信任和所有权链。
- 列表:在设备第一次引导过程中直接将设备凭证应用到 ISO 镜像,而不是嵌入 Kickstart 配置。
- 列表:可让您通过安全的 FDO 通道共享敏感数据。
- 列表:允许管理平台安全地连接到该设备以应用补丁、更新和回滚。
4.2. FDO 自动加入技术
- 要点:FDO 自动接入依赖于一组技术之间的交互,以实现安全且自动化的设备接入。
- 表格样本(共 9 行):
- 技术 | 定义
- UEFI | 统一可扩展固件接口.
- RHEL | Red Hat® Enterprise Linux® 操作系统
- rpm-ostree | 基于镜像的后台升级。
4.3. 使用 FDO 自动完成 RHEL for Edge 设备预配置和入网
- 要点:使用 podman build 来构建和自动加入 RHEL for Edge 系统。通过引导生成的镜像,您可以触发自动置备,将 RHEL for Edge 安装到本地存储或虚拟环境中。
- 要点:先决条件
- 列表:已安装并注册了 RHEL 系统。
- 列表:您有一个 FDO 基础架构,即 Manufacturing 服务器、Rendezvous 服务器 和 Owner 服务器已部署。
- 列表:创建一个 Containerfile 以包含 FDO 客户端和内核参数。例如: $ cat Containerfile FROM registry.redhat.io/rhel10/rhel-bootc:10 #fdo RUN dnf install -y fdo-init fdo-client && \ systemctl enable fdo-client-linuxapp.service RUN mkdir -p /usr/lib/bootc/kargs.d && \ cat <<
EOF>> /usr/lib/bootc/kargs.d/console.toml kargs = ["inst.device=/dev/s… - 列表:使用当前目录中的 Containerfile 构建 <image> 容器镜像: $ podman build -t quay.io/<namespace>/<image>:<tag> .
- 列表:在目标设备上安装生成的镜像并启动设备。 打开后,系统会自动执行以下步骤: FDO 客户端联系 Manufacturing 服务器来交换初始凭据。 设备联系 Rendezvous 服务器 以验证其凭证并找到其预期的所有者。 设备和 Owner 服务器 建立相互信任关系。service-info API 然后将最终配置(如 SSH 密钥、用户帐户和加密文件系统)推送到该设备。
- 列表:FDO 客户端联系 Manufacturing 服务器来交换初始凭据。
- 命令/配置摘录:
$ cat Containerfile FROM registry.redhat.io/rhel10/rhel-bootc:10 #fdo RUN dnf install -y fdo-init fdo-client && \ systemctl enable fdo-client-linuxapp.service RUN mkdir -p /usr/lib/bootc/kargs.d && \ cat <<`EOF` >> /usr/lib/bootc/kargs.d/console.toml kargs = ["inst.device=/dev/sda"] EOF
$ podman build -t quay.io/<namespace>/<image>:<tag> .4.4. 生成密钥和证书
- 要点:安装 FIDO Device Onboarding (FDO) 服务会自动生成制造服务器的密钥和证书。如果需要,您可以手动重新创建这些凭证。服务在安装后以默认设置启动。
- 要点:先决条件
- 列表:已安装 fdo-admin-cli RPM 软件包。
- 列表:在 /etc/fdo 目录中生成密钥和证书: $ for i in "diun" "manufacturer" "device-ca" "owner"; do fdo-admin-tool generate-key-and-cert $i; done $ ls keys device_ca_cert.pem device_ca_key.der diun_cert.pem diun_key.der manufacturer_cert.pem manufacturer_key.der owner_cert.pem owner_key.der
- 列表:检查在 /etc/fdo/keys 目录中创建的密钥和证书: $ tree keys 您可以看到以下输出: - device_ca_cert.pem - device_ca_key.der - diun_cert.pem - diun_key.dre - manufacturer_cert.pem - manufacturer_key.der - owner_cert.pem - owner_key.pem 如需了解更多详细信息,请参阅 fdo-admin-tool generate-key-and-cert --help 命令输出。
- 命令/配置摘录:
$ for i in "diun" "manufacturer" "device-ca" "owner"; do fdo-admin-tool generate-key-and-cert $i; done $ ls keys device_ca_cert.pem device_ca_key.der diun_cert.pem diun_key.der manufacturer_cert.pem manufacturer_key.der owner_cert.pem owner_key.der
$ tree keys- 注意:重要 红帽提供了 fdo-admin-tool 工具作为技术预览功能。由于此功能在开发过程中,请确保仅在安全网络上部署并测试它。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。如需有关 技术预览功能支持范围 的信息,请参阅红帽客户门户网站中的技术预览功能支持范围。
4.5. 安装和配置 manufacturing 服务器
- 要点:通过安装 fdo-manufacturing-server RPM,部署 FDO manufacturing 服务器以自动加入。它生成设备元数据、GUID 和 rendezvous 信息,并创建连接设备到 rendezvous 服务器所需的凭证和所有者 vouchers。
- 要点:要安装 manufacturing 服务器 RPM 软件包,请完成以下步骤:
- 列表:安装 fdo-admin-cli 软件包: # dnf install -y fdo-admin-cli
- 列表:检查是否安装了 fdo-manufacturing-server RPM 软件包: $ rpm -qa | grep fdo-manufacturing-server --refresh
- 列表:检查是否已正确安装了这些文件: $ ls /usr/share/doc/fdo 您可以看到以下输出: Output: manufacturing-server.yml owner-onboarding-server.yml rendezvous-info.yml rendezvous-server.yml serviceinfo-api-server.yml
- 列表:可选:检查每个文件的内容: $ cat /usr/share/doc/fdo/manufacturing-server.yml
- 列表:配置制造服务器。您必须提供以下信息: 制造服务器 URL Rendezvous 服务器的 IP 地址或 DNS 名称 您生成的密钥和证书的路径。 您可以在 /usr/share/doc/fdo/manufacturing-server.yml 目录中找到制造服务器配置文件的示例。以下是在 /etc/fdo 目录中创建并保存的一个 manufacturing server.yml 示例。它包含您创建的目录、证书、密钥的路径、Rendezvous 服务器 IP 地址和默认端口。 session_store_driver: Directory: path: /etc/fdo/stores/manufacturing_sessions…
- 列表:制造服务器 URL
- 命令/配置摘录:
# dnf install -y fdo-admin-cli
$ rpm -qa | grep fdo-manufacturing-server --refresh- 注意:重要 红帽提供了 fdo-manufacturing-server 工具作为技术预览功能。由于此功能在开发过程中,请确保仅在安全网络上部署并测试它。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。如需有关 技术预览功能支持范围 的信息,请参阅红帽客户门户网站中的技术预览功能支持范围。
4.6. 安装、配置和运行 Rendezvous 服务器
- 要点:您可以通过安装 fdo-rendezvous-server 软件包,使系统在第一次引导期间接收 manufacturing 服务器 voucher。rendezvous 服务器将设备 UUID 与目标平台或云匹配,并将设备定向到正确的所有者服务器端点。
- 要点:先决条件
- 列表:您创建了一个 manufacturer_cert.pem 证书。
- 列表:您可以将 manufacturer_cert.pem 证书复制到 Rendezvous 服务器中的 /etc/fdo/keys 目录中。
- 列表:安装 fdo-rendezvous-server RPM 软件包: # dnf install -y fdo-rendezvous-server
- 列表:创建 rendezvous-server.yml 配置文件,包括制造商证书的路径。您可以在 /usr/share/doc/fdo/rendezvous-server.yml 中找到示例。以下示例显示了保存在 /etc/fdo/rendezvous-server.yml 中的配置文件。 storage_driver: Directory: path: /etc/fdo/stores/rendezvous_registered session_store_driver: Directory: path: /etc/fdo/stores/rendezvous_sessions trusted_manufacturer_keys_…
- 列表:检查 Rendezvous 服务器服务状态: # systemctl list-unit-files | grep fdo | grep rende fdo-rendezvous-server.service disabled disabled 如果停止并禁用该服务,请启用并启动它: # systemctl enable --now fdo-rendezvous-server.service
- 列表:如果停止并禁用该服务,请启用并启动它: # systemctl enable --now fdo-rendezvous-server.service
- 命令/配置摘录:
# dnf install -y fdo-rendezvous-server
storage_driver: Directory: path: /etc/fdo/stores/rendezvous_registered session_store_driver: Directory: path: /etc/fdo/stores/rendezvous_sessions trusted_manufacturer_keys_path: /etc/fdo/keys/manufacturer_cert.pem max_wait_seconds: ~ bind: "0.0.0.0:8082"4.7. 安装、配置和运行所有者服务器
- 要点:通过安装 fdo-owner-cli 和 fdo-owner-onboarding-server 软件包,使系统在第一次引导期间收到 manufacturing 服务器 voucher。rendezvous 服务器将设备 UUID 与目标平台或云匹配,并将设备定向到正确的所有者服务器端点。
- 要点:先决条件
- 列表:部署服务器的设备有一个受信任的平台模块(TPM)设备来加密磁盘。如果没有,在引导 RHEL for Edge 设备时会出现一个错误。
- 列表:您创建了 device_ca_cert.pem、owner_key.der 和 owner_cert.pem,并使用密钥和证书将它们复制到 /etc/fdo/keys 目录中。
- 列表:在这个服务器中安装所需的 RPM: # dnf install -y fdo-owner-cli fdo-owner-onboarding-server
- 列表:准备 owner-onboarding-server.yml 配置文件,并将其保存到 /etc/fdo/ 目录中。包括您已复制的证书的路径,以及有关此文件中发布所有者服务器服务的信息。 以下是 /usr/share/doc/fdo/owner-onboarding-server.yml 中的一个示例。您可以查找对服务信息 API 的引用,如 URL 或身份验证令牌。 --- ownership_voucher_store_driver: Directory: path: /etc/fdo/stores/owner_vouchers session_store_driver: Directory: path: /etc/fd…
- 列表:创建和配置服务信息 API。 为加入添加自动信息,如要用户创建、要复制或创建的文件、要执行的命令、要加密的磁盘等。使用 /usr/share/doc/fdo/serviceinfo-api-server.yml 中的服务信息 API 配置文件示例作为模板,来在 /etc/fdo/ 下创建配置文件。 --- service_info: initial_user: username: admin sshkeys: - "ssh-rsa AAAA...." files: - path: /root/resolv.conf source_path: /etc/resolv.conf commands: - command…
- 列表:为加入添加自动信息,如要用户创建、要复制或创建的文件、要执行的命令、要加密的磁盘等。使用 /usr/share/doc/fdo/serviceinfo-api-server.yml 中的服务信息 API 配置文件示例作为模板,来在 /etc/fdo/ 下创建配置文件。 --- service_info: initial_user: username: admin sshkeys: - "ssh-rsa AAAA...." files: - path: /root/resolv.conf source_path: /etc/resolv.conf commands: - command: touch args: …
- 命令/配置摘录:
# dnf install -y fdo-owner-cli fdo-owner-onboarding-server
--- ownership_voucher_store_driver: Directory: path: /etc/fdo/stores/owner_vouchers session_store_driver: Directory: path: /etc/fdo/stores/owner_onboarding_sessions trusted_device_keys_path: /etc/fdo/keys/device_ca_cert.pem owner_private_key_path: /etc/fdo/keys/owner_key.der owner_public_key_path: /etc/fdo/keys/owner_cert.pem bind: "0.0.0.0:8081" service_info_api_url: "http://localhost:8083/device_info" service_info_api_authentication: BearerToken: token: Kpt5P/5flBkaiNSvDYS3cEdBQXJn2Zv9n1D50431/lo= owner_addresses: - transport: http addresses: - ip_address: 192.168.122.149- 注意:注意 每次更改配置文件时,都必须重启 systemd 服务。
4.8. 使用 FDO 自动化 RHEL for Edge 设备接入
- 要点:配置 FIDO Device Onboarding (FDO)身份验证过程,以在安装过程中自动载入和置备 RHEL for Edge 设备。
- 要点:先决条件
- 列表:您可以使用 podman build 构建自定义镜像。
- 列表:您的设备已组装好。
- 列表:您已安装了 fdo-manufacturing-server RPM 软件包。请参阅 安装和配置 manufacturing 服务器。
- 列表:通过在设备上引导 RHEL for Edge 镜像来启动安装过程。例如,您可以从 CD-ROM 或者 USB 闪存驱动器安装它。
- 列表:通过命令行验证设备已连接 manufacturing 服务,以执行初始设备凭据交换,并生成所有权凭证。 您可以在由 manufacturing-sever.yml 文件中的 ownership_voucher_store_driver: 参数配置的存储位置中找到所有权凭证。 目录里应该有一个名称为 GUID 格式的 ownership_voucher 文件,表示正确的设备凭据已添加到该设备中。 接入服务器使用设备凭据来验证硬件。经过身份验证后,服务器会将所需的配置和 SSH 密钥推送到设备。接收这些资产后,设备会自动完成操作系统安装。 最后,系统会自动重启并使用存储在受信任的平台模块(TPM)中的强大密钥对设备进行加密。
- 列表:通过提供您在服务信息 API 中创建的用户名和密码,登录该设备。
4.9. 使用 FDO 为 RHEL 系统部署镜像模式
- 要点:您可以使用 FIDO Device Onboarding (FDO) 自动化 RHEL 系统镜像模式的部署,以提供安全配置。在 ISO 构建中嵌入 Kickstart 文件来配置安装的具体内容,如用户帐户、自定义分区和 SSH 密钥。
- 要点:如果您使用基于 bootc 容器基础镜像的 ISO,则 bootc-image-builder 会自动安装 ostreecontainer,这是安装容器镜像的命令。您仍然可以配置任何内容,但 ostreecontainer 命令除外。
- 列表:您已在主机机器上安装了 Podman。
- 列表:您有 root 访问权限来运行 bootc-image-builder 工具,并在 --privileged 模式下运行容器。
- 列表:您已部署了 FDO 服务器基础架构。
- 列表:创建一个 Containerfile,例如: FROM registry.redhat.io/rhel10/rhel-bootc:latest RUN dnf install -y fdo-init fdo-client RUN systemctl enable fdo-client-linuxapp.service
- 列表:创建 Kickstart 文件。以下 Kickstart 文件是一个完全无人值守的 Kickstart 文件配置的示例,其中包含用户创建和分区指令。 [customizations.installer.kickstart] contents = """ text --non-interactive zerombr clearpart --all --initlabel --disklabel=gpt autopart --noswap --type=lvm user --name=test --groups=wheel --plaintext --password=test sshkey --username=test "ssh-…
- 列表:将 Kickstart 配置以 .toml 格式保存,以注入 Kickstart 内容。例如,config.toml。
- 命令/配置摘录:
FROM registry.redhat.io/rhel10/rhel-bootc:latest RUN dnf install -y fdo-init fdo-client RUN systemctl enable fdo-client-linuxapp.service
[customizations.installer.kickstart] contents = """ text --non-interactive zerombr clearpart --all --initlabel --disklabel=gpt autopart --noswap --type=lvm user --name=test --groups=wheel --plaintext --password=test sshkey --username=test "ssh-ed25519 AAA..." network --bootproto=dhcp --device=link --activate --onboot=on poweroff %post export MANUFACTURING_SERVER_URL="http://192.168……" export DIUN_PUB_KEY_INSECURE="true" /usr/libexec/fdo/fdo-manufacturing-client %end """完整目录
- 使用 RHEL 10 创建、部署和管理边缘系统
- 对红帽文档提供反馈
- 第 1 章 RHEL for Edge 镜像
- 1.1. RHEL RPM 镜像和 RHEL for Edge 镜像之间的区别
- 1.2. 其他资源
- 第 2 章 从 rpm-ostree 系统迁移到基于 bootc 的系统
- 2.1. RHEL 的镜像模式
- 2.2. 从基础镜像构建自定义镜像
- 2.3. 将蓝图映射到 Containerfile 自定义
- 2.4. 使用镜像模式匹配 RHEL for Edge 镜像的功能
- 2.4.1. 使用镜像模式构建 RHEL for Edge 9.6 或更高版本的镜像
- 2.4.2. 使用镜像模式构建 RHEL 10 及更新的版本 for Edge 镜像
- 2.5. 安装 bootc-image-builder
- 2.5.1. 使用 bootc-image-builder 创建 RHEL 9.6 磁盘镜像
- 2.5.2. 使用 bootc-image-builder 创建 RHEL 10.0 磁盘镜像
- 2.6. 在 Containerfile 中配置用户和组
- 2.7. SSH 和所有权问题的故障排除
- 2.7.1. 将 RHEL 9.6 原始镜像部署转换为镜像模式
- 2.7.2. 将 RHEL 9.6 for Edge 简化安装程序部署转换为镜像模式
- 2.7.3. 将现有 RHEL for Edge 9.6 升级到 RHEL 10 及更新版本的镜像模式
- 第 3 章 使用 FDO 客户端和服务器自动置备和注册 RHEL for Edge 设备
- 3.1. FDO 信任模型过程概述
- 3.2. FDO 系统的组件
- 3.3. FDO 工作流
- 3.4. FDO 的加密凭证
- 3.5. 为单主机评估生成测试证书
- 3.6. 安装 FDO 制造服务器
- 3.7. 配置 FDO 制造服务器
- 3.8. 运行 FDO 制造服务器
- 3.9. HTTPS 和数据库的配置参考
- 3.9.1. HTTPS 要求
- 3.9.2. 数据库连接(db.dsn)
- 3.10. 安装 FDO Rendezvous 服务器
- 3.11. 运行 FDO Rendezvous 服务器
- 3.12. 高级 Rendezvous 配置(TO0)
- 3.13. 安装 FDO 所有者服务器
- 3.14. 配置 FDO 所有者服务器
- 3.15. FDO ServiceInfo 模块(FSIMs)
- 3.16. 为设备置备配置 FDO ServiceInfo 模块(FSIM)
- 3.17. 运行 FDO Owner 服务器
- 3.18. 在 RHEL 10 中安装和配置 FIDO Device Onboard (FDO)客户端
- 3.19. 配置 FDO 客户端
- 3.20. 使用 TPM 来存储设备凭证
- 3.21. 验证 FDO 设备凭证
- 3.22. 清除 FDO 设备凭证
- 3.23. FDO 故障排除参考
- 3.23.1. 诊断命令:
- 第 4 章 使用 FDO 自动完成 RHEL for Edge 设备预配置和入网
- 4.1. FIDO Device Onboarding (FDO) 进程概述
- 4.2. FDO 自动加入技术
- 4.3. 使用 FDO 自动完成 RHEL for Edge 设备预配置和入网
- 4.4. 生成密钥和证书
- 4.5. 安装和配置 manufacturing 服务器
- 4.6. 安装、配置和运行 Rendezvous 服务器
- 4.7. 安装、配置和运行所有者服务器
- 4.8. 使用 FDO 自动化 RHEL for Edge 设备接入
- 4.9. 使用 FDO 为 RHEL 系统部署镜像模式
