使用 sudo 执行 Ansible adhoc 命令

Mei*_*yev 6 linux ansible operations-orchestration

我需要执行 ansible adhoc 命令。

$ ansible somehost -m command -a "cat /etc/passwd"-u someuser --ask-sudo-pass
Run Code Online (Sandbox Code Playgroud)

我有一个具有sudo特权的用户帐户 (someuser) 。通常我成为 root sudo su -

如何使用 adhoc 命令sudo su -

ansible 版本是 2.0.0.2

Dia*_*ond 6

对于 Ansible 版本 1.9 或更高版本,您需要改用--ask-become-pass。对于旧版本--ask-sudo-pass应该可以工作。

\n\n

成为(权限提升)

\n\n
\n

在 1.9 Ansible 之前,大多数允许使用sudo和有限使用 su来允许登录/远程用户成为不同的用户并执行任务,使用第二个用户 xe2x80x99s 权限创建资源。从 1.9 开始,\n 取代了旧的 sudo/su,同时仍然向后\n 兼容。这个新系统还可以更轻松地添加其他权限提升工具,例如pbrun (Powerbroker)、pfexecdzdo (Centrify) 等。

\n
\n


slm*_*slm 6

如果您的清单中的服务器共享 SSH 密钥并且您想要sudoroot,则可以进一步将命令简化为:

$ ansible all -m command -a "docker info" -u myuser --become --ask-become-pass
Run Code Online (Sandbox Code Playgroud)


Mei*_*yev 2

正确的ansible命令是

ansible all -m 命令-a "docker info" -u myuser --become-user root --ask-pass --ask-become-pass