私は 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
のようにキャッシュされていると思います。