我正在嘗試使用 ansible,但我似乎無法讓它與 sudo 一起使用。我已將問題最小化為:
這不起作用:
ansible localhost --ask-become-pass -m shell -a "cat /var/log/syslog"
給出以下輸出:我輸入密碼,然後出現錯誤。
SUDO password:
localhost | FAILED | rc=1 >>
cat: /var/log/syslog: Permission denied
這些工作正常:
ssh -t localhost sudo cat /var/log/syslog #without ansible
ansible localhost -m shell -a "ls" #without sudo
其他診斷:
#expecting last line to be `root`
ansible localhost --become-user=root --ask-become-pass -m shell -a "whoami"
當輸入正確的密碼時,給出此輸出。
SUDO password:
localhost | SUCCESS | rc=0 >>
richard
答案1
您可以嘗試在運行時將其新增至命令中--ask-become-pass
所以,ansible yoga --become-user=root --ask-become-pass -m shell -a "cat /var/log/syslog"
答案2
看來這--ask-become-pass
還不夠,你還需要參數--become
。因此命令是:ansible localhost --become --ask-become-pass -m shell -a "cat /var/log/syslog"
。
我還注意到我不需要--ask-become-pass
,我認為密碼正在被緩存,就像sudo
一樣。