第 13 章 使用 RHEL 系统角色配置自动崩溃转储
要使用 Ansible 管理 kdump,您可以使用 kdump
角色,这是 RHEL 9 中提供的 RHEL 系统角色之一。
使用 kdump
角色可让您指定保存系统内存内容的位置,以便稍后进行分析。
13.1. 使用 kdump
RHEL 系统角色配置内核崩溃转储机制
内核崩溃转储是诊断和故障排除系统问题的关键功能。当您的系统遇到内核 panic 或其他关键故障时,崩溃内核转储允许您在失败时捕获内核状态的内存转储(内核转储)。
通过使用 Ansible playbook,您可以使用 kdump
RHEL 系统角色在多个系统上设置内核崩溃转储参数。这样可确保所有受管节点的一致性设置,用于 kdump
服务。
kdump
系统角色替换了 /etc/kdump.conf
和 /etc/sysconfig/kdump
配置文件中的内容。之前的设置变为角色变量中指定的变量,如果它们没有在角色变量中指定,则会丢失。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。
流程
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml
:--- - name: Configuring kernel crash dumping hosts: managed-node-01.example.com tasks: - name: Setting the kdump directory. ansible.builtin.include_role: name: rhel-system-roles.kdump vars: kdump_target: type: raw location: /dev/sda1 kdump_path: /var/crash/vmcore kernel_settings_reboot_ok: true
示例 playbook 中指定的设置包括以下内容:
kdump_target: <type_and_location>
-
将
vmcore
写入 root 文件系统以外的位置。当类型是
raw 或文件系统时,位置
指的是分区(按名称、标签或 UUID)。 kernel_settings_reboot_ok: <true|false>
-
默认值为
false
。如果设置为true
,则系统角色将确定是否需要重新启动受管主机,以便请求的更改生效并重新启动它。如果设置为false
,则角色将返回变量kernel_settings_reboot_required
,值设为true
,表示需要重启。在这种情况下,用户必须手动重新引导受管节点。
有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.kdump/README.md
文件。验证 playbook 语法:
$ ansible-playbook --syntax-check ~/playbook.yml
请注意,这个命令只验证语法,不会防止错误但有效的配置。
运行 playbook:
$ ansible-playbook ~/playbook.yml
验证
验证内核崩溃转储参数:
$ ansible managed-node-01.example.com -m command -a 'grep crashkernel /proc/cmdline'
其他资源
-
/usr/share/ansible/roles/rhel-system-roles.kdump/README.md
文件 -
/usr/share/doc/rhel-system-roles/kdump/
目录