7.14. Red Hat Enterprise Linux 系统角色


encryption_key 不再被屏蔽

在此次更新之前,encryption_key 参数被错误地标记为 no_log。这会导致密钥文件路径被占位符字符串替代,从而导致磁盘加密正常工作。在这个版本中,encryption_key 参数不再标记为 no_log 标志,您现在可以成功使用密钥文件执行磁盘加密。

Jira:RHEL-104676[1]

RAID 现在报告无效或不支持的配置的明确错误

在此次更新之前,可以指定无效的 RAID 级别或磁盘不足,而不会造成明显错误。这会导致阵列创建失败或不一致。因此,错误消息不明确,RAID 设置不太可靠。在这个版本中,RAID 参数会在阵列创建前验证,并强制使用最小磁盘计数。因此,会引发清晰的错误,并尝试创建带有没有磁盘不足的 RAID 被阻止。

在这个版本中,删除了已弃用的 process_device_numbers 帮助程序,并使用 unified_raid_level。另外,还添加了无效 RAID 级别和磁盘场景的失败测试。

Jira:RHEL-104891[1]

LVM RAID 现在支持加密和分区的设备

在此次更新之前,LVM RAID 代码假设 raid_disks 中指定的磁盘是所有 LVM RAID 设置的 PV 的父设备。这不适用于加密或分区的设备。因此,当加密 LUKS 层添加了一个额外的存储层时,或者在没有父设备的情况下使用直接分区时出现错误。在这个版本中,LVM RAID 中的 PV 解析被改进来支持加密和分区的设备。现在,您可以指定 PV 分区而不是底层磁盘。

在这个版本中,为缺失或无效的 RAID 磁盘条目添加了错误处理,并引进了相应的测试以确保稳定性。

Jira:RHEL-95885[1]

较小的卷大小不匹配不再导致角色报告不正确

在此次更新之前,当创建或重新定义卷的大小时,系统最多允许达到请求大小和实际大小之间的 2% 的不同。这种调整使卷适合可用的池可用空间。因此,当角色再次运行时大小不匹配,从而导致角色错误地假设内容已更改。在这个版本中,小大小差异不再导致角色错误解析更改。现在,该角色会报告正确的状态。

Jira:RHEL-82825[1]

如果禁用了 IPv6 接口,postfix RHEL 系统角色会自动探测

默认 postfix 配置使用 inet_interfaces = localhost 设置,它会告知 postfix 侦听解析到 localhost 的所有接口,包括 IPv4 和 IPv6 接口。在此次更新之前,如果主机上禁用了 IPv6,则会出现问题。在这种情况下,postfix 角色及其命令行工具(如reply )会返回错误。整个角色都失败。在这个版本中,该角色确定是否禁用了 IPv6。如果是这样,它会设置 inet_protocols = ipv4,以便 postfix 仅使用 IPv4 接口。因此,postfix 角色也可以工作,即使禁用 IPv6。

Jira:RHEL-103889[1]

timesync RHEL 系统角色不再从 /etc/sysconfig/chronyd中删除 OPTIONS="-F 2" 默认设置

在此次更新之前,timesync 系统角色使用 "" 替换 chronyd 服务的默认 OPTIONS= 设置。因此,这删除了默认的 OPTIONS="-F 2" 设置,这弱了 chronyd 的安全性。在这个版本中,-F 2 被添加为 OPTIONS 的默认设置,用户可以覆盖或扩展此设置。因此,timesync 角色现在应用正确的安全设置,同时仍然允许用户自定义。

Jira:RHEL-88299[1]

改进了使用 swigrhel-system-roles中的值删除内核选项

在以前的版本中,当用户只提供密钥时,无法删除指定为 key=value 的内核引导选项,从而导致持久不需要的引导参数,按名称管理内核选项。在这个版本中,在 swigmod_boot_args 函数中的正则表达式已被更新,以正确匹配并删除内核选项,并添加了自动测试以验证正确的行为。

因此,现在可以按名称可靠地删除内核选项,即使将 key=value 设置为 key=value,确保准确的配置和改进的系统管理。

Jira:RHEL-101678[1]

GSSAPIIndicators 添加到 sshd 角色

新的配置选项 GSSAPIIndicators 被添加到 RHEL 10 中,用于设置通用安全服务应用程序编程接口(GSS-API)。在这个版本中,在 sshd RHEL 系统角色中添加了 GSSAPIIndicators 配置选项。因此,您可以使用 RHEL 系统角色在 RHEL 10 系统上配置 GSSAPIIndicators

Jira:RHEL-107049[1]

bootloader 角色拒绝布尔值或 null 类型值

在此次更新之前,用户可以指定值(如 value: onvalue: yes )的值,它们会被转换为字符串 "on""yes "。但是,YAML 将它们视为 YAML bool 类型,并将其写为字符串 "True "。因此,不知道 YAML 布尔值处理的用户无法设置值,如 "on""off "。在这个版本中,引导装载程序 RHEL 系统角色会拒绝布尔值或 null 类型的值。因此,用户必须输入这样的 YAML 布尔值类型值,以带引号字符串将它们写入引导装载程序配置。readme 使用此信息更新。

Jira:RHEL-107015[1]

当解析 Alias 值时,sudo 角色不再挂起

在此次更新之前,sudo RHEL 系统角色中的 regex 不考虑该 Alias 值,如 Cmnd_Alias,不必在等号 = 一侧有空格。因此,正则表达式永远不会被终止,角色似乎挂起。在这个版本中,角色确保 regex 符合 sudoers 文件规格中字段的 eBNF 定义。因此,Alias 值会被正确解析,并且没有空格 =

Jira:RHEL-106733[1]

指定多个用户不再会导致资源与错误的用户关联

在此次更新之前,用户数据会因为管理多个用户时混合使用 __podman_user 和 __podman_user _home_dir 变量值的事实和变量而发生。因此,用户数据会在多个用户间混合,从而导致每个用户使用不正确的配置文件。在这个版本中,通过避免 __podman_user 和 __podman_user _ home_dir 的组合和变量来维护 用户数据分离。因此,用户数据会隔离给多个用户,从而提高资源管理一致性。

Jira:RHEL-105095[1]

SELinux 角色不再因为 Ansible 检查模式下未定义的 tempdir 路径而生成错误

在此次更新之前,在 Ansible 检查模式中没有定义 tempdir 路径,__selinux_item.path 可以是 undefined。因此,当以检查模式运行时,selinux RHEL 系统角色会生成各种变量未定义的错误。在这个版本中,角色会跳过需要定义 tempdir.path 的任务,并可以处理变量未定义的情况。因此,该角色可在检查模式中正常工作。

Jira:RHEL-103575[1]

确保 ha_cluster RHEL 系统角色需要 /var/lib/pcsd 目录

在此次更新之前,/var/lib/pcsd 目录是在安装过程中创建的,但更新的版本依赖 systemd 服务在 pcsd 服务启动时创建这个目录。因此,当角色尝试访问它时,该目录可能不存在,从而导致执行错误或失败。

在这个版本中,该角色明确确保 /var/lib/pcsd 目录在使用前存在。因此,它可防止因为缺少目录而导致运行时问题,并改进角色执行可靠性。

Jira:RHEL-101663[1]

使用 redhat.rhel_system_roles 集合不再显示有关不兼容 Ansible 版本的警告

在此次更新之前,redhat.rhel_system_roles 集合在 meta/runtime.yml 文件中指定 {{requires_ansible: ">=2.15.0"}},但 RHEL 9 包含 ansible-core 2.14。因此,如果您在 playbook 中使用了集合,Ansible 会显示一个 Collection redhat.rhel_system_roles 不支持 Ansible 版本 2.14.x 警告。在这个版本中,更改了 meta/runtime.yml 文件,以使用 {{requires_ansible: ">=2.14.0"}}。因此,集合不再显示警告。

Jira:RHEL-94444[1]

SELinux 角色永久设置内核 SELinux 参数

在此次更新之前,selinux RHEL 系统角色不会在更改 SELinux 状态和禁用时设置 kernel SELinux 参数。因此,SELinux 状态更改在重启后不会被保留。在这个版本中,确保在角色将 SELinux 状态更改为 disabled 时正确设置了 kernel SELinux 参数。因此,SELinux 状态会更改为,重启后从 disabled 会被保留。

Jira:RHEL-93296[1]

systemd 角色使用文件 basename 构造到目的地的路径

在此次更新之前,如果用户在嵌套目录中指定了文件或模板源,systemd RHEL 系统角色将使用整个路径而不是目标文件的 basename。因此,文件和模板放置在目的地的同一目录结构中,systemd 不支持它。在这个版本中,该角色将 basenames 用于嵌套目录中的目标文件。因此,用户可以使用带有角色的嵌套目录。

Jira:RHEL-88772

ad_integration 角色中引入了软件包安装的灵活性

在以前的版本中,ad_integration 角色总是会尝试安装所需的软件包,如 realmdsssd-adadcli 以及 __ad_integration_packages 中列出的更多内容。在外部系统处理软件包管理的环境中,例如,通过此角色之外的配置管理、预先获取的镜像或不可变系统,这一步是冗余且不可取的。

在这个版本中,用户可以通过其他方法管理软件包安装,并且只希望此角色加入域,从而提供灵活性。主要改进包括:

  • 新变量:引入新的布尔值变量 ad_integration_manage_packages,以控制角色是否安装软件包。
  • Default Value: 默认值在 defaults/main.yml 中被设置为 true,以确保向后兼容。使用此角色的现有 playbook 将像不修改之前一样继续工作。
  • 条件任务:添加 when: ad_integration_manage_packages | bool 条件到 tasks/main.yml 中的 "Ensure required packages are installed" 任务。该任务现在仅在标志为 true (默认)时运行。
  • 文档: Updated README.md 以包含新的 ad_integration_manage_packages 变量,解释其目的和默认值。

Jira:RHEL-88314[1]

qdevice 守护进程现在在证书更改后自动重启

在以前的版本中,在更新用于仲裁设备守护进程(qnetd)和集群节点(qdevice)之间的通信后,qdevice 守护进程不会自动重启。守护进程将继续使用旧证书,从而导致与仲裁设备的通信失败。

在这个版本中,集群节点中的 qdevice 守护进程会在证书更改后自动重启。这样可确保立即载入新证书,并与仲裁设备通信被维护。

Jira:RHEL-88251[1]

ha_cluster RHEL 系统角色现在可以与配置了系统范围的 HTTP 代理一起工作

在以前的版本中,当配置了系统范围的 HTTP 代理时,ha_cluster RHEL 系统角色会错误地尝试通过 unix 套接字与 pcsd 守护进程进行本地通信。这会导致角色失败。

在这个版本中,这个角色已被修改,以明确禁用本地 pcsd 通讯的代理使用。

因此,ha_cluster RHEL 系统角色在定义了系统范围的 HTTP 代理的系统中可以正常工作。

Jira:RHEL-88241[1]

网络 RHEL 系统角色不再显示错误,因为路由规则验证不正确

在此次更新之前,network RHEL 系统角色中的验证部分会错误地检查顶层 NM 模块中的路由规则属性,而不是 NM.IPRoutingRule 类。这会导致验证失败,角色显示错误。在这个版本中,该角色正确使用 API,不再显示不正确的验证错误。

Jira:RHEL-85872

布尔值选项值在 TOML 文件中正确呈现

在以前的版本中,布尔值选项被错误地处理,因为 formatter 代码没有将布尔值转换为正确的字符串表示。在这个版本中,布尔值会被正确转换为小写字符串,确保 TOML 文件中的正确渲染和处理。

Jira:RHEL-85702

布尔值选项可以在 TOML 文件中正确写入和处理

在此次更新之前,布尔值选项没有被正确处理,因为格式的代码没有将布尔值转换为正确的字符串表示。

在这个版本中,我们将布尔值选项转换为字符串,然后转换为小写,这是正确的 TOML 布尔值格式。这样可确保 TOML 文件可以正确地写入和处理布尔值选项。

Jira:RHEL-84940

在管理身份验证和配置文件时,podman RHEL 系统角色不会报告 changed: true

在此次更新之前,如果在管理身份验证和配置文件时,podman RHEL 系统角色都会更改父路径模式,因为它为各种配置和身份验证文件的通用父路径使用两种不同的模式。

在这个版本中,该角色不会报告 changed: true,因为它对父路径使用一致的模式。

Jira:RHEL-84920

Podman 角色不会失败并显示 UNREACHABLE 错误

在以前的版本中,在为非 root 用户禁用 linger 时,podman 角色无法等待用户状态处于关闭状态。然后,podman 角色重启 systemd-logind 以强制其取消。在某些系统上,这启动一个计时器来终止 root 会话,从而导致 sshd 会话终止,Ansible play 会失败,并显示 UNREACHABLE 错误。

在这个版本中,系统会等待用户处于关闭状态,且只在绝对需要时才重新启动。 因此,在删除资源时角色不会失败,并显示 UNREACHABLE 错误。

Jira:RHEL-84910

network RHEL 系统角色现在使用更强大的接口识别方法

在此次更新之前,当为网络接口提供了接口名称和 MAC 地址时,验证过程会执行两个独立的查找:一个用于使用接口名称,另一个使用 MAC 地址。这可能会导致验证失败,因为 MAC 地址的查找可能与接口的当前 MAC 地址而不是其永久硬件 MAC 地址匹配。

在这个版本中,验证逻辑有所改进。network 角色现在使用接口名称作为唯一标识符来查找网络设备。然后,它会检索与该接口关联的 MAC 地址,并将其与用户提供的 MAC 地址进行比较以进行验证。这个方法更为可靠,因为接口名称是唯一的内核标识符,防止临时 MAC 地址更改导致的不匹配。

Jira:RHEL-84362

systemd 角色取消掩码,并在一次运行时启动单元

在此次更新之前,systemd RHEL 系统角色无法在单元被屏蔽时启用并启动服务,因为角色无法首先取消屏蔽单元。因此,用户必须运行角色两次。在这个版本中,systemd 角色可以正确地取消掩码并启动服务,从而消除了重复运行的需求。

Jira:RHEL-81755

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat