第 7 章 使用 RHEL 系统角色配置 GRUB 引导装载程序
通过使用 引导装载程序
RHEL 系统角色,您可以自动化与 GRUB 引导装载程序相关的配置和管理任务。
此角色目前支持配置 GRUB 引导装载程序,该加载程序运行在以下 CPU 构架上:
- AMD 和 Intel 64 位构架(x86-64)
- 64 位 ARM 架构(ARMv8.0)
- IBM Power Systems, Little Endian(POWER9)
7.1. 使用 bootloader
RHEL 系统角色更新现有引导装载程序条目
您可以使用 bootloader
RHEL 系统角色,以自动的方式更新 GRUB 引导菜单中的现有条目。这样,您可以有效地传递可以优化系统性能或行为的特定内核命令行参数。
例如,如果您利用不需要来自内核和 init 系统的详细引导消息的系统,请使用 bootloader
将 quiet
参数应用到受管节点上现有的引导装载程序条目中,以实现更干净、更整洁、更用户友好的引导体验。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。 - 您确定了与您要更新的引导装载程序条目对应的内核。
流程
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml
:--- - name: Configuration and management of GRUB boot loader hosts: managed-node-01.example.com tasks: - name: Update existing boot loader entries ansible.builtin.include_role: name: rhel-system-roles.bootloader vars: bootloader_settings: - kernel: path: /boot/vmlinuz-5.14.0-362.24.1.el9_3.aarch64 options: - name: quiet state: present bootloader_reboot_ok: true
示例 playbook 中指定的设置包括以下内容:
kernel
- 指定与您要更新的引导装载程序条目连接的内核。
options
- 为所选引导装载程序条目指定要更新的内核命令行参数(内核)。
bootloader_reboot_ok: true
- 该角色检测是否需要重启才能使更改生效,并执行受管节点的重启。
有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.bootloader/README.md
文件。验证 playbook 语法:
$ ansible-playbook --syntax-check ~/playbook.yml
请注意,这个命令只验证语法,不会防止错误但有效的配置。
运行 playbook:
$ ansible-playbook ~/playbook.yml
验证
检查您指定的引导装载程序条目是否已更新了内核命令行参数:
# ansible managed-node-01.example.com -m ansible.builtin.command -a 'grubby --info=ALL' managed-node-01.example.com | CHANGED | rc=0 >> ... index=1 kernel="/boot/vmlinuz-5.14.0-362.24.1.el9_3.aarch64" args="ro crashkernel=1G-4G:256M,4G-64G:320M,64G-:576M rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap $tuned_params quiet" root="/dev/mapper/rhel-root" initrd="/boot/initramfs-5.14.0-362.24.1.el9_3.aarch64.img $tuned_initrd" title="Red Hat Enterprise Linux (5.14.0-362.24.1.el9_3.aarch64) 9.4 (Plow)" id="2c9ec787230141a9b087f774955795ab-5.14.0-362.24.1.el9_3.aarch64" ...
其他资源
-
/usr/share/ansible/roles/rhel-system-roles.bootloader/README.md
文件 -
/usr/share/doc/rhel-system-roles/bootloader/
目录 - 使用 Playbook
- 使用变量
- 角色
- 配置内核命令行参数