5.12. Red Hat Enterprise Linux System Roles

如果禁用 IPv6,则网络系统角色不再无法设置 DNS 搜索域

在以前的版本中,如果禁用了 IPv6 协议,libnm 库的 nm_connection_verify() 函数不会忽略 DNS 搜索域。因此,当您使用网络 RHEL 系统角色并设置 dns_search 并设置了 ipv6_disabled: true 时,系统角色会失败并显示以下错误:

nm-connection-error-quark: ipv6.dns-search: this property is not allowed for 'method=ignore' (7)

有了这个更新,如果禁用了 IPv6,nm_connection_verify() 函数会忽略 DNS 搜索域。因此,您可以按预期使用 dns_search ,即使禁用了 IPv6。

(BZ#2004899)

Postfix 角色 README 不再使用普通角色名称

在以前的版本中,/usr/share/ansible/roles/rhel-system-roles.postfix/README.md 中提供的示例使用了角色名称的普通版本(postfix),而不是使用 rhel-system-roles.postfix。因此,用户会因为参考了文档而错误地使用普通角色名称而不是完全限定域名(FQRN)。在这个版本中解决了这个问题,文档包含了 FQRN、rhel-system-roles.postfix 的示例,让用户能够正确地写入 playbook。

(BZ#1958964)

Postfix RHEL 系统角色 README.md 不再在"Role Variables"部分缺少变量

在以前的版本中,Postfix RHEL 系统角色变量(如 postfix_check,postfix_backup,postfix_backup_multiple )在"Role Variables"部分中不可用。因此,用户无法查阅 Postfix 角色文档。在这个版本中,在 Postfix README 部分中添加了角色变量文档。角色变量记录在 rhel-system-roles 提供的 doc/usr/share/doc/rhel-system-roles/postfix/README.md 文档中。

(BZ#1978734)

运行相同输出时角色任务不再改变

在以前的版本中,在再次运行同一输入时,一些角色任务会报告为 CHANGED,即使没有更改也是如此。因此,该角色并不具有幂等性。要解决这个问题,请执行以下操作:

  • 在应用配置变量前检查配置变量是否有所变化。您可以使用 --check 选项进行此验证。
  • 不要向配置文件中添加 Last Modified: $date 标头。

因此,角色任务是幂等的。

(BZ#1978760)

logging_purge_confs 选项可以正确地删除不必要的配置文件

logging_purge_confs 选项设为 true 时,它应删除不必要的日志记录配置文件。但是,即使 logging_purge_confs 被设置为 true,也不会从配置目录中删除不必要的配置文件。现在,这个问题已被解决,选项已被重新定义:如果 logging_purge_confs 设为 true,Rsyslog 从没有属于任何 rpm 软件包的 rsyslog.d 目录中删除文件。这包括之前运行日志记录角色的配置文件。logging_purge_confs 的默认值为 false

(BZ#2039106)

使用 Metrics 角色的 playbook 可以在多个运行中成功完成,即使 Grafana admin 密码已更改

在以前的版本中,在使用 metrics_graph_service: yes 布尔值运行 Metrics 角色后更改 Grafana admin 用户密码会导致 Metrics 角色后续运行失败。这会导致使用 Metrics 角色失败 playbook,受影响的系统只部分设置性能分析。现在,Metrics 角色会在 Grafana deployment API 可用时使用,不再需要了解用户名或密码来执行必要的配置操作。因此,使用 Metrics 角色的 playbook 会在多个运行中成功完成,即使管理员更改了 Grafana admin 密码。

(BZ#2041632)

现在,Metrics 角色配置会正确跟随符号链接

安装 mssql pcp 软件包后,mssql.conf 文件位于 /etc/pcp/mssql/ 中,是符号链接 /var/lib/pcp/pmdas/mssql/mssql.conf 的目标。但是,Metrics 角色覆盖符号链接,而不是按照其配置 mssql.conf。因此,运行 Metrics 角色会更改到常规文件的符号链接,因此配置仅影响 /var/lib/pcp/pmdas/mssql.conf 文件。这会导致符号链接失败,主配置文件 /etc/pcp/mssql.conf 不受配置的影响。这个问题现已解决,在 Metrics 角色中添加了 follow: yes 选项来跟踪链接。因此,Metrics 角色会保留符号链接并正确配置主配置文件。

(BZ#2058777)

timesync 角色不再无法找到请求的服务 ptp4l

在以前的版本中,在一些 RHEL 版本中,Ansible service_facts 模块报告服务事实错误。因此,timesync 角色会报告一个错误,试图停止 ptp4l 服务。在这个版本中,Ansible service_facts 模块检查任务的返回值,以停止 timesync 服务。如果返回的值为 failed,但错误消息是 Could not find the requested service NAME:,则模块会假定成功。现在,timesync 角色会在没有任何错误的情况下运行,如 Could not find the requested service ptp4l

(BZ#2058645)

kernel_settings configobj 在受管主机上可用

在以前的版本中,kernel_settings 角色没有在受管主机上安装 python3-configobj 软件包。因此,角色会返回一个错误,表示无法找到 configobj Python 模块。在这个版本中,角色可确保受管主机上存在 python3-configobj 软件包,kernel_settings 角色可以正常工作。

(BZ#2058756)

Terminal Session Recording 角色 tlog-rec-session 现在被 SSSD 正确覆盖

在以前的版本中,Terminal Session Recording RHEL 系统角色依赖于系统安全服务守护进程(SSSD)文件供应商,并在启用了 authselect 选项 with-files-domain 以在 nsswitch.conf 文件中设置正确的 passwd 条目。在 RHEL 9.0 中,SSSD 默认不会隐式启用文件供应商,因此 SSSD 的 tlog-rec-session shell 覆盖无法正常工作。在这个版本中,Terminal Session Recording 角色更新 nsswitch.conf 以确保 SSSD 正确覆盖 tlog-rec-session

(BZ#2071804)

SSHD 系统角色可以在 FIPS 模式中管理系统

在以前的版本中,当调用时,SSHD 系统角色无法创建不允许 的 HostKey 类型。因此,SSHD 系统角色无法在联邦信息处理标准(FIPS)模式中管理 RHEL 8 和旧的系统。在这个版本中,SSHD 系统角色检测到 FIPS 模式,并正确调整默认的 HostKey 列表。因此,系统角色可以使用默认的 HostKey 配置在 FIPS 模式中管理 RHEL 系统。

(BZ#2029634)

SSHD 系统角色使用正确的模板文件

在以前的版本中,SSHD 系统角色使用错误的模板文件。因此,生成的 sshd_config 文件不包含 ansible_managed 注释。在这个版本中,系统角色使用正确的模板文件,sshd_config 包含正确的 ansible_managed 注释。

(BZ#2044408)

Kdump RHEL 系统角色可以重新引导,或表示需要重新引导

在以前的版本中,Kdump RHEL 系统角色会忽略受管节点,而无需为崩溃内核保留内存。因此,角色使用 "Success" 状态完成,即使它没有正确配置系统。在 RHEL 9 的这个版本中,这个问题已被解决。如果受管节点没有为崩溃内核保留任何内存,则 Kdump RHEL 系统角色会失败,并建议用户将 kdump_reboot_ok 变量设置为 true,以便在受管节点上正确配置 kdump 服务。

(BZ#2029602)

网络系统角色中的 nm 供应商现在可以正确地管理网桥

在以前的版本中,如果您使用 initscripts 供应商,则网络系统角色会创建一个 ifcfg 文件,该文件将 NetworkManager 配置为将网桥接口标记为非受管。另外,NetworkManager 无法检测后续的 initscript 操作。例如,如果在 downabsent 操作后没有重新载入连接,则 initscript 提供程序的 downabsent 操作不会更改 NetworkManager 对这个接口的未受管状态的理解。在这个版本中,Network 系统角色使用 NM.Client.reload_connections_async() 函数在带有 NetworkManager 1.18 的受管主机上重新载入 NetworkManager。因此,在将提供程序从 initscript 切换到 nm 时,NetworkManager 会管理网桥接口。

(BZ#2038957)

修复了一个拼写错误,为正确的绑定模式支持 active-backup

在以前的版本中,在指定 active-backup 绑定模式时,在支持 InfiniBand 端口时,active_backup 有一个拼写错误 。由于这个拼写错误,对于 InfiniBand 绑定端口,连接无法支持正确的绑定模式。这个更新通过将绑定模式改为 active-backup 解决了拼写错误。现在,连接可以成功支持 InfiniBand 绑定端口。

(BZ#2064391)

Logging 系统角色不再多次调用任务

在以前的版本中,日志记录角色会多次调用只应该调用一次的任务。因此,额外的任务调用会减慢角色执行速度。在这个版本中,日志记录角色被修改为只调用一次任务,从而提高了日志记录角色性能。

(BZ#2004303)

RHEL 系统角色现在在生成的文件中处理多行 ansible_managed 注释

在以前的版本中,一些 RHEL 系统角色使用 # {{ ansible_managed }} 生成某些文件。因此,如果客户有自定义多行 ansible_managed 设置,则文件会被错误地生成。在这个版本中,所有系统角色在生成文件时都使用了与 {{ ansible_managed | comment }} 等效的,以便 ansible_managed 字符串始终被正确注释,包括多行 ansible_managed 值。因此,生成的文件具有正确的多行 ansible_managed 值。

(BZ#2006230)

现在,当 target 发生变化时,防火墙系统角色会立即重新载入防火墙

在以前的版本中,当 target 参数改变时,防火墙系统角色不会重新载入防火墙。在这个版本中,防火墙角色会在 target 更改时重新载入防火墙,因此 target 更改将立即可用,供后续操作使用。

(BZ#2057164)

证书系统角色中的 group 选项不再使证书无法被该组访问

在以前的版本中,当为证书设置组时,mode 不会设置为允许组读取权限。因此,组成员无法读取证书角色发布的证书。在这个版本中,组设置可确保文件模式包含组读取权限。因此,组成员可以访问证书角色为组发布的证书。

(BZ#2021025)

Logging 角色不再缺少 immark 模块间隔值的引号

在以前的版本中,immark 模块的 interval 字段值没有正确加引号,因为 immark 模块没有正确配置。在这个版本中,interval 值会被正确加引号。现在,immark 模块可以正常工作。

(BZ#2021676)

/etc/tuned/kernel_settings/tuned.conf 文件有一个正确的 ansible_managed 标头

在以前的版本中,kernel_settings RHEL 系统角色在 /etc/tuned/kernel_settings/tuned.conf 文件中为 ansible_managed 标头有一个硬编码的值。因此,用户无法提供自己的自定义 ansible_managed 标头。在这个版本中,这个问题已被解决,kernel_settings 使用用户的 ansible_managed 设置更新了 /etc/tuned/kernel_settings/tuned.conf 的标头。因此,/etc/tuned/kernel_settings/tuned.conf 有一个适当的 ansible_managed 标头。

(BZ#2047506)

VPN 系统角色过滤插件 vpn_ipaddr 现在转换为 FQCN(完全限定域名)

在以前的版本中,从旧角色格式转换为集合格式的转换没有将过滤器插件 vpn_ipaddr 转换为 FQCN(Fully Qualified Collection Name) redhat.rhel_system_roles.vpn_ipaddr。因此,VPN 角色无法通过短名称查找插件并报告错误。在这个版本中,转换脚本已被修改,过滤器会在集合中转换为 FQCN 格式。现在,VPN 角色在不发出错误的情况下运行。

(BZ#2050341)

kdump.service 的作业不再失败

在以前的版本中,用来配置内核崩溃大小的 Kdump 角色代码没有为 RHEL9 更新,这需要使用 kdumpctl reset-crashkernel。因此,kdump.service 无法启动并发出错误。在这个版本中,kdump.service 角色使用 kdumpctl reset-crashkernel 来配置崩溃内核大小。现在,kdump.service 角色可以成功启动 kdump 服务,内核崩溃大小会被正确配置。

(BZ#2050419)