20.12. 在单个 Ansible 任务中管理多个 IdM sudo 规则
使用 ansible-freeipa
模块中的 sudorules
选项,您可以确保单个 Ansible 任务中存在或不存在多个身份管理(IdM) sudo
规则。使用 选项,您可以更轻松地定义 sudo
规则,并更有效地执行它们。
先决条件
在控制节点上:
- 您使用 Ansible 版本 2.14 或更高版本。
- 您使用 RHEL 9.6 或更高版本。
-
您已安装了
ansible-freeipa
软件包。 - 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
-
示例假定 secret.yml Ansible vault 存储了您的
ipaadmin_password
,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
-
目标节点(这是执行
ansible-freeipa
模块的节点)是 IdM 域的一部分,来作为 IdM 客户端、服务器或副本。
这个示例额外假设以下内容:
- IdM 中存在 user01 和 user02 用户。
- IdM 中存在 usergroup01 用户组。
- IdM 中存在 hostgroup01 和 hostgroup02 主机组。
流程
进入 ~/MyPlaybooks/ 目录:
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下内容创建 ensure-presence-of-multiple-sudorules-in-a-task.yml 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 注意
-
使用
sudorules
选项,您可以指定多个仅适用于特定sudo
规则的sudo
规则变量。此sudo
规则由name
变量定义,它是sudorules
选项的唯一强制的变量。在示例中,用户
、组
、allow_sudocmd
和allow_sudocmdgroup
变量应用到 testrule01sudo
规则。
- 保存这个文件。
运行 Ansible playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:
ansible-playbook --vault-password-file=password_file -v -i inventory ensure-presence-of-multiple-sudorules-in-a-task.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory ensure-presence-of-multiple-sudorules-in-a-task.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow