8.14. Red Hat Enterprise Linux 系统角色
现在,实施多组节点属性的键值对与其他集群配置组件保持一致
ha_cluster RHEL 系统角色只支持每个配置项一组键值对。在以前的版本中,当配置多个节点属性集合时,集合被合并成一个集合。有了此更新,该角色只使用您定义的第一个集合,而忽略其他集合。现在,这个行为与角色为使用键值对结构的其他配置组件如何实现多组键值对保持一致。
NetworkManager 服务和 NetworkManager 插件之间没有属性冲突
在以前的版本中,当对网络软件包的更新可用时,特别是因为无线接口改变了时,network RHEL 系统角色不会要求用户重启 NetworkManager 服务。因此,这导致 NetworkManager 服务和 NetworkManager 插件之间潜在的冲突。或者,NetworkManager 插件无法正确运行。这个问题已通过让 network RHEL 系统角色要求用户同意重启 NetworkManager 服务而得到了解决。因此,在上述场景中,NetworkManager 服务和 NetworkManager 插件之间没有属性冲突。
RHEL 9 和 RHEL 10 Beta UEFI 受管节点上的 GRUB2 可以正确地提示输入密码
在以前的版本中,bootloader RHEL 系统角色错误地将密码信息放在运行 RHEL 9 和具有 UEFI 安全引导功能的 RHEL 10 Beta 受管节点上的 /boot/efi/EFI/redhat/user.cfg 文件中。正确的位置是 /boot/grub2/user.cfg 文件。因此,当重启受管节点来修改任何引导装载程序条目时,GRUB2 不提示您输入密码。此更新通过在源代码中将 user.cfg 的路径设置为 /boot/grub2/ 解决了这个问题。当您在 UEFI 安全引导受管节点上重启操作系统来修改任何引导装载程序条目时,GRUB2 会提示您输入您的密码。
您不能为 imuxsock 输入类型设置 name 参数
在以前的版本中,logging RHEL 系统角色会为 imuxsock 输入类型错误地设置 name 参数。因此,这个输入类型不支持 name 参数,受管节点上的 rsyslog 工具会打印此错误 …parameter 'name' not known — typo in config file?…。这个更新修复了 logging RHEL 系统角色,来确保 name 参数没有与 imuxsock 输入类型关联。
在具有预先存在的 Stratis 池的系统上运行 storage RHEL 系统角色可以正常工作
在以前的版本中,storage RHEL 系统角色无法处理现有的设备和设备格式。当检查 Stratis 格式是否符合 playbook 指定的配置时,这导致角色在具有预先存在的 Stratis 池的系统上失败。因此,playbook 失败并显示一个错误,但 Stratis 池本身没有损坏或更改。此更新使 storage RHEL 系统角色可以与 Stratis 设备和其他格式正常工作,而无需标记支持。因此,在具有预先存在的 Stratis 池的系统上运行 playbook 不再失败。
Jira:RHEL-29874[1]
使用 podman 删除 Quadlet 定义的网络可以正常工作,而无论自定义 NetworkName 指令如何
删除网络时,podman RHEL 系统角色对网络名称使用 "systemd- + name of the Quadlet file" 语法。因此,如果 Quadlet 文件中存在不同的 NetworkName 指令,则删除将失败。有了此更新,podman 源代码已被更新,以使用 "Qadlet 文件名 +该文件中的 NetworkName 指令"作为要删除的网络的名称。因此,使用 podman RHEL 系统角色删除 Quadlet 文件定义的网络可以与或不与 Quadlet 文件中自定义 NetworkName 指令一起工作。
storage RHEL 系统角色再次是幂等的
在某些情况下,storage RHEL 系统角色会错误地计算现有设备的大小。因此,再次运行没有更改的同一 playbook 导致角色尝试调整已经有正确大小的设备的大小,而不是无错误地通过。有了此更新,大小计算已被修复。因此,角色现在可以正确地识别设备已有 playbook 指定的大小,且不会尝试调整它的大小。
Quadlet 单元文件中的网络单元现在可以被正确地清理
podman RHEL 系统角色不能正确管理 Quadlet 单元文件中 [Network] 部分下定义的网络单元。因此,网络单元不会被停止和禁用,后续运行因为这些单元没有被正确清理而失败。有了此更新,podman 管理 [Network] 单元,包括停止和删除。因此,Qadlet 单元文件中的 [Network] 单元被正确地清理。
如果需要,podman RHEL 系统角色会创建新的 secret
如果您使用 podman_secrets 角色变量的 skip_existing: true 选项,则 podman RHEL 系统角色会错误地检查具有相同名称的 secret 是否已存在。因此,如果使用该选项,角色不会创建任何新 secret。此更新修复了 podman RHEL 系统角色,以在使用 skip_existing: true 时检查现有的 secret。因此,如果 secret 不存在,角色会正确地创建新的 secret。相反,如果您使用 skip_existing: true,则不会创建同名的 secret。
可以对正确的用户取消 linger 功能
当处理 kube 文件或 Quadlet 文件中的配置项的说明列表时,podman RHEL 系统角色错误地使用了与整个列表关联的用户 ID。它没有使用与列表项目关联的用户 ID ,来编译 linger 文件名。因此,没有创建 linger 文件,因此 podman RHEL 系统角色无法取消实际用户的 linger 功能(如果需要的话)。有了此更新,podman 使用正确的用户名来构造 linger 文件名。因此,可以对正确的用户取消 linger 功能。
podman RHEL 系统角色可以再次设置主机目录的所有权
在以前的版本中,在设置主机目录的所有权时,podman RHEL 系统角色将 become 关键字与用户一起使用 。因此,角色无法正确设置所有权。有了此更新,podman RHEL 系统角色不会将 become 与普通用户一起使用。相反,它使用 root 用户。因此,podman 可以设置主机目录的所有权。
作为对这个 bug 修复的补充,已在 podman RHEL 系统角色中添加了以下角色变量:
-
podman_subuid_info(字典):公开了/etc/subuid文件中的角色使用的信息。需要此信息来正确设置主机目录的所有者信息。 -
podman_subgid_info(字典):公开了/etc/subgid文件中的角色使用的信息。需要此信息来正确设置主机目录的组信息。
有关新添加的变量的详情,请查看 /usr/share/doc/rhel-system-roles/podman/ 目录中的资源。
podman RHEL 系统角色现在可以正确地搜索 subgid 值
从属组 ID (subgid)是一个分配给非 root 用户的组 ID 值的范围。通过使用这些值,您可以在容器中使用与主机系统不同的组 ID 运行进程。在以前的版本中,使用组名称而不是用户名称在 subgid 值中错误地搜索了 podman RHEL 系统角色。因此,用户名和组名称之间的区别使 podman 无法查找 subgid 值。此更新修复了 podman ,以便正确地搜索 subgid 值,在这种情况下问题不再发生。
sshd RHEL 系统角色可以正确地配置第二个 sshd 服务
如果您没有指定 sshd_config_file 角色变量,则运行 sshd RHEL 系统角色来在受管节点上配置第二个 sshd 服务会导致一个错误。因此,您的 playbook 将失败,并且 sshd 服务无法被正确配置。要解决这个问题,主配置文件的派生已得到了改进。另外,以使 /usr/share/doc/rhel-system-roles/sshd/ 目录中的文档资源更加清晰,以避免此问题。因此,按上述场景中所述配置第二个 sshd 服务可以按预期工作。
如果需要,bootloader RHEL 系统角色会生成缺失的 /etc/default/grub 配置文件
在以前的版本中,bootloader RHEL 系统角色预期 /etc/default/grub 配置文件存在。在某些情况下,例如在 OSTtree 系统上,可能会缺失 /etc/default/grub。因此,角色意外失败。有了此更新,如果需要,角色会使用默认参数生成缺失的文件。
cockpit RHEL 系统角色安装所有与通配符模式匹配的与 cockpit 相关的软件包
在以前的版本中,通过 cockpit RHEL 系统角色使用的 dnf 模块没有安装所有与 cockpit 相关的软件包。因此,一些请求的软件包没有被安装。有了此更新,cockpit RHEL 系统角色的源代码被修改为使用带有星号通配符的软件包名称和要排除的软件包的列表来直接使用 dnf 模块。因此,角色可以正确地安装与通配符模式匹配的所有请求的软件包。