Ansible: sudo ohne Passwort
Möchte ich laufen ansible mit Benutzer-sa1 ohne sudo-Passwort:
Ersten mal OK:
[root@centos1 cp]# ansible cent2 -m shell -a "sudo yum -y install httpd"
cent2 | SUCCESS | rc=0 >>
Zweiten mal GESCHEITERT:
[root@centos1 cp]# ansible cent2 -s -m yum -a "name=httpd state=absent"
cent2 | FAILED! => {
"changed": false,
"failed": true,
"module_stderr": "",
"module_stdout": "sudo: a password is required\r\n",
"msg": "MODULE FAILURE",
"parsed": false
}
Bitte um Hilfe!!
welche version von ansible verwenden Sie? Die
-s
Schalter ist veraltet, in den neueren Versionen. Vielleicht versuchen Sie mit -b
(geworden). Versuchen Sie auch, um explizit den login-Benutzer über -u
, funktioniert es dann?InformationsquelleAutor bbkaaka | 2016-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht ansible ist es die Konfiguration Ihres Servers. Stellen Sie sicher, dass sudo ist erlaubt für den Benutzer ansible verwenden, ohne Passwort.
sudo visudo
centos ALL=(ALL) NOPASSWD:ALL
centos
mit der Sie Ihre Benutzer -Können Sie versuchen, vom server selbst mit:
Wenn das funktioniert sollte es von ansible zu.
[root@centos1 cp]# ansible cent2 -m shell -a "sudo yum -y install httpd" cent2 | SUCCESS | rc=0 >>
ich habe bereits addsa1 ALL=(ALL) NOPASSWD: SOFTWARE , /bin/echo
Ich gehe davon aus
SOFTWARE
ist ein Befehl alias. Was haben Sie dort definiert? Können Sie versuchen, mitALL
zu sehen, wenn das der limitierende Faktor? Wenn Sie ansible mit-vvvv
können Sie sehen, welcher Befehl es ist der Versuch zum aufrufen.Ich Erfolg beim ändern von SOFTWARE, die Sie AUF ALLE. Dies ist mein alias
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
Ansible ist dabei alle Arten von tricks mit kopieren von ausführbaren Dateien, die zum temporären Verzeichnis, löscht es nach der Ausführung. Getestet hab ich auf einem server von mir ein ansible laufen mit
-vvvv
. Es puts und calls eine unterschiedliche yum-Datei:PUT /var/folders/sr/hcg9zzm12jg28txszy7nnh0x721jx7/T/tmpLs5wbd TO /home/centos/.ansible/tmp/ansible-tmp-1464250141.88-48281030641080/yum
und nach, dass/usr/bin/python -tt /home/centos/.ansible/tmp/ansible-tmp-1464250141.88-48281030641080/yum
also dein alias ist nicht in übereinstimmung mit dem Befehl, der ausgeführt wird mit ansible-Modul.InformationsquelleAutor Károly Nagy
Standardmäßig ansible läuft sudo mit den Flaggen:
-H -S -n
um root zu werden. Wo--non-interactive
wäre die entsprechende Langform für option-n
. Diese option scheint sudo Rückkehr die Fehlermeldung, ohne den Versuch zu lassen, die Authentifizierungs-Module machen Ihr Ding.Ich es geschafft, um die Kennwort-Fehler durch das erstellen einer ~/.ansible.cfg mit folgendem Inhalt:
War zumindest genug, um pam_ssh_agent_auth.so zu führen und zu authentifizieren mir.
InformationsquelleAutor sampi