Ich würde gerne einen Befehl auf localhost, mit ansible_connection=local
, aber auch als ein bestimmter Benutzer, d. H. ansible_user=my_other_user
. Interessanterweise scheinen die beiden Optionen sich gegenseitig ausschließend zu sein:Ansible: Run als ein anderer Benutzer auf localhost
- Mit
/etc/ansible/hosts
localhost ansible_user=my_other_user
-
sein
ansible localhost -a "whoami" localhost | SUCCESS | rc=0 >> my_other_user
- Mit
/etc/ansible/hosts
localhost ansible_user=my_other_user ansible_connection=local
seinansible localhost -a "whoami" localhost | SUCCESS | rc=0 >> myself
Ist das ein Fehler oder eine Funktion?
Wie kann ich das Inventar von Ansible verwenden, um sich mit my_other_user bei localhost anzumelden, aber ohne ssh?
EDIT: Dies sollte nie Sudo über den lokalen Benutzer myself
verwenden. Die Passwörter für die Benutzer myself
und my_other_user
sind unterschiedlich, und Ansible kann das Passwort für myself
nicht kennen.
EDIT2: Ändern der Methode su
(d.h. localhost ansible_connection=local ansible_become_user=my_other_user ansible_become_method=su ansible_become=true
) nicht nicht funktionieren, da es dann nicht möglich ist, Befehle als Root auszuführen, ohne das Root-Passwort zu kennen.
Diese Lösung nicht für mich arbeiten, da es das Passwort für den Benutzer 'ubuntu' erfordert, aber ich brauche ansible das sudo Passwort für' www-data' zu verwenden. Bearbeitete Frage für mehr Präzision. – Kalsan