当我在具有某些需要以root用户身份运行的命令的主机上运行ansible时,我无法使用“成为”运行这些命令,因为它以root用户身份运行命令,而不是仅使用sudo运行它们。 />我一直在使用command: sudo ...,然后使用

args: 
  warn: no
抑制警告

是否有更好,更标准化的方法来使用sudo运行linux命令行没有密码?

评论

真正的原因是什么?当您通过执行成为任务时,在后台使用sudo。

使用@kon时,由于失败原因,我会收到“ msg”:“缺少sudo密码”

#1 楼


当我在有一些需要以root用户身份运行的命令的主机上运行ansible时,我无法使用“成为”运行这些命令,因为它以root用户身份运行命令,而不仅仅是使用sudo运行它们。 />

这不是真的; become使用各种方法来进行特权升级,并且默认使用sudo。 br />

评论


好吧,这似乎是ansible的局限性之一,当我运行-vvv时,它正在执行sudo -H -S -n -u root / bin / sh -c'一堆东西'。我认为它可以使用sudo特权运行我想要的命令,但是我想这有点天真,因为它需要以更通用的方式用root运行1000种其他类型的命令。

– Peter Turner
17年12月26日在19:22

#2 楼

您已经尝试过-K吗?我总是使用此选项,然后必须输入sudo密码

评论


是的,问题是我正在使用的ssh用户没有权限以root用户身份启动shell,而只有我想通过ansible运行的命令的权限。

– Peter Turner
17年12月26日在19:53

我不认为如果用户不能以root用户身份启动外壳程序,则无法以root用户身份运行命令,因为ansible基本上是通过ssh运行命令。

– 030
17/12/26在21:30