6.2. 使用 kernel_settings 角色应用所选内核参数
按照以下步骤准备并应用 Ansible playbook 来远程配置内核参数,从而对多个受管操作系统产生持久性。
先决条件
-
有
root
权限。 -
RHEL 订阅授权,您将在控制机器上安装
ansible-core
和rhel-system-roles
软件包。 - 受管主机清单存在于控制计算机上,Ansible 能够连接它们。
RHEL 8.0 - 8.5 提供对基于 Ansible 的自动化需要 Ansible Engine 2.9 的独立 Ansible 存储库的访问权限。Ansible Engine 包含命令行实用程序,如 ansible
、ansible-playbook
; 连接器,如 docker
和 podman
; 以及插件和模块的整个环境。有关如何获取并安装 Ansible Engine 的信息,请参阅如何下载和安装 Red Hat Ansible Engine?。
RHEL 8.6 和 9.0 引入了 Ansible Core(以 ansible-core
RPM 提供),其中包含 Ansible 命令行工具、命令以及小型内置 Ansible 插件。AppStream 存储库提供 ansible-core
,它的范围有限。如需更多信息,请参阅 RHEL 9 AppStream 中包含的 ansible-core 软件包的范围。
步骤
另外,还可查看
清单(inventory)
文件 :Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该文件定义
[testingservers]
组和其他组。它允许您对特定的系统集合更有效地运行 Ansible。创建配置文件来为 Ansible 操作设置默认值和特权升级。
创建新 YAML 文件,并在文本编辑器中打开,例如:
vi /home/jdoe/<ansible_project_name>/ansible.cfg
# vi /home/jdoe/<ansible_project_name>/ansible.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将以下内容插入到文件中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [defaults]
部分指定受管主机清单文件的路径。[privilege_escalation]
部分定义用户特权转移到指定受管主机上的root
。这对成功配置内核参数是必需的。运行 Ansible playbook 时,会提示您输入用户密码。用户在连接到受管主机后,通过sudo
自动切换为root
。
创建使用
kernel_settings
角色的 Ansible playbook。创建新 YAML 文件,并在文本编辑器中打开,例如:
vi /home/jdoe/<ansible_project_name>/kernel-roles.yml
# vi /home/jdoe/<ansible_project_name>/kernel-roles.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此文件代表一个 playbook,通常包含了一组有特定顺序的任务(也称为 play )列表。这些任何会根据
inventory
文件中选择的特定管理主机进行。将以下内容插入到文件中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow name
键是可选的。它将一个任意字符串作为标签与该 play 关联,并确定该 play 的用途。Play 中的hosts
键指定对其运行 play 的主机。此键的值或值可以作为被管理的主机的单独名称提供,也可以作为inventory
文件中定义的一组主机提供。vars
部分代表包含所选内核参数名称和值的变量列表。roles
键指定系统角色将配置vars
部分中提到的参数和值。注意您可以修改 playbook 中的内核参数及其值以符合您的需要。
(可选)验证 play 中的语法是否正确。
ansible-playbook --syntax-check kernel-roles.yml
# ansible-playbook --syntax-check kernel-roles.yml playbook: kernel-roles.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 本例演示了对 playbook 的成功验证。
执行 playbook。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Ansible 运行 playbook 之前,会提示您输入密码,以便受管主机上的用户可以切换到
root
,这在配置内核参数时是必需的。recap 部分显示 play 成功完成所有受管主机 (
failed=0
),并且已应用了 4 个内核参数 (changed=4)。
- 重启您的受管主机并检查受影响的内核参数,以验证是否应用了更改并在重启后保留。