我尝试在剧本中使用选项“become;”和“become_user”,其中相关用户在目标机器上拥有无密码 sudo。但每次我尝试运行剧本时,都会收到错误“缺少 sudo 密码”。
主机以“bob”身份登录。此帐户也是目标 Ubuntu 服务器上的主要用户。(安装时创建的帐户。)我正尝试使用第二个帐户“ansible”。
‘ansible’ 用户在包含的 ‘/etc/sudoers.d/90-cloud-init-users’ 文件中如下:
ansible ALL=(ALL) NOPASSWD:ALL
‘/erc/shadow’ 中也没有密码 (ansible:!:19983:0:99999:7:::)。如果我真的必须以用户身份登录,则使用 SSH 密钥。
剧本是:
- hosts: nas
become: true
become_user: ansible
roles:
但每当我运行剧本时我都会得到:
fatal: [XXX]: FAILED! => {"msg": "Missing sudo password"}
指定所有添加密码的方法(-K 之类的)并将其留空不起作用。
我只想能够运行以下命令,而无需输入任何其他密码,只需将我的 SSH 密钥添加到 ssh-agent 即可。
ansible-playbook -i inventory playbook.yml --limit nas
1
最佳答案
2
主机以“bob”身份登录…我正尝试成为名为“ansible”的第二个帐户。
此 sudo 条目…
ansible ALL=(ALL) NOPASSWD:ALL
… 赋予帐户“超级权力” ansible
,而不是bob
帐户本身。
重新阅读 sudoers 文件格式的手册页。
你需要更多类似的东西:
bob ALL=(ansible) NOPASSWD:ALL
这应该允许bob
以该帐户运行任何内容ansible
。
3
-
现在出现以下错误::
The destination directory (/etc/default) is not writable by the current user.
–
-
See3ms 我无法运行:sudo -u ansible rm /etc/default/fart 。
– -
sudo -u ansible bash -c ‘sudo touch /etc/default/fart’ | 成功了。现在如何让 ansible 做到这一点?
–
|
看起来 ansible 并没有按照我希望的方式进行编码,在快速查看冗长的输出后,它并没有执行我想要的操作。
然而,我已经找到了可以满足我要求的东西。
认为这个问题已经解决了。
|
sudo
调用它的用户的密码?它需要bob
的密码,而不是andible
的。你试过吗?或者,是否可以使用su
取决于您要更改的帐户的密码,而不是您要更改的帐户的密码?–
|