sudo 两次成为 Ansible 的方法

sudo 两次成为 Ansible 的方法

我必须处理“/etc/sudoers”中的一个无法更改的设置,因为所涉及的服务器由不同的团队管理,他们不想更改它。

我只有先使用 sudo 访问另一个帐户才能获得 root 访问权限。我的帐户只允许运行特定命令“sudo su - admin”(不能附加其他参数)。然后,作为用户“admin”,我可以使用 sudo 正常运行任何 root 命令(例如“sudo vi /etc/shadow”等)或使用“sudo -s”或“sudo su -”等打开 root shell。

我想从我控制的其他服务器上以 root 身份运行 Ansible 临时命令和剧本(例如“成为:是”),但这要求 Ansible 首先运行“sudo su - admin”,然后运行正常的“sudo”命令。

我知道您可以创建自定义的 become 方法。在我看来,这是解决这个问题的方法,但具体的解决方案超出了我的能力范围。有人能帮忙吗?

顺便说一句,如果有帮助的话,“/etc/sudoers”中为我的帐户和“管理员”都设置了“NOPASSWD:”。

答案1

您可以--become --become-user admin在 ansible adhoc 上使用,或者在 ansible playbook 上使用下面的 yaml。

  - name: Run a command as nobody
    command: somecommand
    become: yes
    become_user: admin
    become_method: su

如果您需要特定的成为方法--become-method su,则默认--become-methodsudo

相关内容