Ich versuche, Ansible zu verwenden, aber es scheint nicht mit Sudo zu funktionieren. Ich habe das Problem folgendermaßen minimiert:
Das funktioniert nicht:
ansible localhost --ask-become-pass -m shell -a "cat /var/log/syslog"
Gibt diese Ausgabe aus: Ich gebe das Passwort ein, dann tritt ein Fehler auf.
SUDO password:
localhost | FAILED | rc=1 >>
cat: /var/log/syslog: Permission denied
Diese funktionieren gut:
ssh -t localhost sudo cat /var/log/syslog #without ansible
ansible localhost -m shell -a "ls" #without sudo
Weitere Diagnostik:
#expecting last line to be `root`
ansible localhost --become-user=root --ask-become-pass -m shell -a "whoami"
gibt diese Ausgabe aus, wenn das richtige Passwort eingegeben wurde.
SUDO password:
localhost | SUCCESS | rc=0 >>
richard
Antwort1
Sie können versuchen, dies dem Befehl hinzuzufügen, wenn Sie ausführen--ask-become-pass
Also,ansible yoga --become-user=root --ask-become-pass -m shell -a "cat /var/log/syslog"
Antwort2
Das scheint --ask-become-pass
nicht genug zu sein, Sie benötigen auch den --become
Parameter. Daher lautet der Befehl: ansible localhost --become --ask-become-pass -m shell -a "cat /var/log/syslog"
.
Mir ist auch aufgefallen, dass ich das nicht brauche --ask-become-pass
, ich glaube das Passwort wird zwischengespeichert, so wie sudo
es ist.