第 18 章 系统配置
RHEL 的镜像模式使用容器原生虚拟化方法构建、部署和管理操作系统。镜像模式软件包、操作系统及其配置作为基于 registry.redhat.io/rhel10/rhel-bootc 镜像的容器镜像,其中包含操作系统及其配置为不可变容器层。
18.1. 临时运行时重新配置 复制链接链接已复制到粘贴板!
Red Hat Enterprise Linux 镜像模式中的临时运行时重新配置涉及对实时系统进行临时调整。在将这些更改永久嵌入到不可变容器镜像之前,您可以安全地测试配置并排除问题。
您可以在基础镜像配置中执行动态重新配置。例如,您可以运行 firewall-cmd --permanent 命令,来在重启后实现永久更改。
默认情况下,/etc 目录是持久的。如果您使用工具(如 firewall-cmd --permanent )进行更改,系统上的 /etc 内容可能与容器镜像中描述的内容不同。
在 deafult 配置中,首先在基础镜像中进行更改。然后,在不重启正在运行的系统的情况下对更改进行排队。最后,同时写入,仅在内存中对现有系统应用更改。
您可以使用绑定挂载将 /etc 目录配置为临时的。在这种情况下,etc 目录是机器的本地 root 文件系统的一部分。例如,如果您使用 Anaconda Kickstart 注入静态 IP 地址,它们会在升级后保留不变。
系统在升级过程中应用三向合并,每个部署都会保留自己的 /etc 副本。
/run目录-
/run目录是一个 API 文件系统,定义为在系统重启时删除。将/run目录用于临时文件。 - 动态重新配置模型
- 在 Pull 模型中,您可以直接包含嵌入在基础镜像或特权容器中的代码。此代码联系远程网络服务器进行配置,然后使用 Podman API 启动其他容器镜像。
在 Push 模型中,一些工作负载是通过 Ansible 等工具实现的。
- systemd
-
您可以通过写入到
/run/systemd目录来对动态临时重新配置使用 systemd 单元。例如,systemctl edit --runtime myservice.service会动态更改myservice.service单元的配置,而不会使更改持久。 - NetworkManager
-
使用
/run/NetworkManager/conf.d目录应用临时网络配置。使用nmcli connection modify --temporary命令仅在内存中写更改。如果没有--temporary选项,命令会写入持久的更改。 - Podman
-
使用
podman run --rm命令在容器退出时自动删除容器。如果不使用--rm选项,podman run命令会创建一个在系统重启后保持不变的容器。