5.2. 使用 bootloader RHEL 系统角色,使用密码保护引导菜单
您可以使用 bootloader RHEL 系统角色,以自动的方式为 GRUB 引导菜单设置密码。这样,您可以有效地防止未经授权的用户修改引导参数,并更好地控制系统引导。
先决条件
- 您已准备好控制节点和受管节点。
- 您以可在受管主机上运行 playbook 的用户身份登录到控制节点。
-
您用于连接到受管节点的帐户对它们具有
sudo权限。
流程
将敏感变量存储在加密的文件中:
创建 vault :
ansible-vault create ~/vault.yml New Vault password: <vault_password> Confirm New Vault password: <vault_password>
$ ansible-vault create ~/vault.yml New Vault password: <vault_password> Confirm New Vault password: <vault_password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
ansible-vault create命令打开编辑器后,以<key>: <value>格式输入敏感数据:pwd: <password>
pwd: <password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存更改,并关闭编辑器。Ansible 加密 vault 中的数据。
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml:--- - name: Configuration and management of GRUB boot loader hosts: managed-node-01.example.com vars_files: - ~/vault.yml tasks: - name: Set the bootloader password ansible.builtin.include_role: name: redhat.rhel_system_roles.bootloader vars: bootloader_password: "{{ pwd }}" bootloader_reboot_ok: true--- - name: Configuration and management of GRUB boot loader hosts: managed-node-01.example.com vars_files: - ~/vault.yml tasks: - name: Set the bootloader password ansible.builtin.include_role: name: redhat.rhel_system_roles.bootloader vars: bootloader_password: "{{ pwd }}" bootloader_reboot_ok: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例 playbook 中指定的设置包括如下:
bootloader_password: "{{ pwd }}"- 变量确保使用密码保护引导参数。
bootloader_reboot_ok: true- 角色检测到需要重启才能使更改生效,并对受管节点执行重启。
重要更改引导装载程序密码不是幂等的事务。这意味着,如果您再次应用同样的 Ansible playbook,则结果将不一样,并且受管节点的状态将改变。
有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.bootloader/README.md文件。验证 playbook 语法:
ansible-playbook --syntax-check --ask-vault-pass ~/playbook.yml
$ ansible-playbook --syntax-check --ask-vault-pass ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,这个命令只验证语法,不能防止错误的、但有效的配置。
运行 playbook:
ansible-playbook --ask-vault-pass ~/playbook.yml
$ ansible-playbook --ask-vault-pass ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
在受管节点上的 GRUB 引导菜单屏幕中,按 e 键进行编辑。
提示您输入用户名和密码:
输入用户名: root-
引导装载程序用户名始终是
root,您不需要在 Ansible playbook 中指定它。 输入 password: <password>-
引导装载程序密码对应于您在
vault.yml文件中定义的pwd变量。
您可以查看或编辑特定引导装载程序条目的配置: