6.13. 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 可以正确地提示输入密码
在以前的版本中,引导装载程序
RHEL 系统角色错误地将密码信息放在 /boot/efi/EFI/redhat/user.cfg
文件中,该文件运行 RHEL 9 和带有 UEFI 安全引导功能的 RHEL 10 Beta。正确的位置是 /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
可以设置主机目录的所有权。
作为这个 bugfix 的补充,以下角色变量已添加到 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 的进程。在以前的版本中,podman
RHEL 系统角色使用组名称而不是使用用户名在 subgid
值中错误地搜索。因此,用户名和组名称之间的区别使 podman
无法查找 subgid
值。在这个版本中,podman
可以正确地搜索 subgid
值,在这种情况下不再会出现这个问题。
sshd
RHEL 系统角色可以正确地配置第二个 sshd
服务
如果您没有指定 sshd_config_file
角色变量,则运行 sshd
RHEL 系统角色来在受管节点上配置第二个 sshd
服务会导致一个错误。因此,您的 playbook 将失败,并且 sshd
服务无法被正确配置。要解决这个问题,主配置文件的派生已得到了改进。另外,以使 /usr/share/doc/rhel-system-roles/sshd/
目录中的文档资源更加清晰,以避免此问题。因此,按上述场景中所述配置第二个 sshd
服务可以按预期工作。
如果需要,引导装载程序
RHEL 系统角色会生成缺少的 /etc/default/grub
配置文件
在以前的版本中,引导装载程序
RHEL 系统角色预期 /etc/default/grub
配置文件存在。在某些情况下,如 OSTtree 系统,可能会缺少 /etc/default/grub
。因此,角色意外失败。在这个版本中,角色会在需要时使用默认参数生成缺少的文件。
cockpit
RHEL 系统角色会安装与通配符模式匹配的所有 cockpit
相关软件包
在以前的版本中,通过 cockpit
RHEL 系统角色使用的 dnf
模块没有安装所有 cockpit
相关的软件包。因此,一些请求的软件包不会被安装。在这个版本中,cockpit
RHEL 系统角色的源代码被修改为使用带有星号通配符软件包名称和要排除的软件包列表来直接使用 dnf
模块。因此,该角色可以正确地安装与通配符模式匹配的所有请求软件包。
当 rhc_auth
包含激活码时,rhc
系统角色不会在注册的系统上失败
在以前的版本中,当使用 rhc_auth
参数中指定的激活码在注册的系统上执行 playbook 文件时,会出现失败。这个问题已解决。现在,可以在已经注册的系统上执行 playbook 文件,即使在 rhc_auth
参数中提供了激活码。