Ich möchte ansible verwenden , um eine Gruppe vorhandener Server zu verwalten. Ich habe eine ansible_hosts
Datei erstellt und erfolgreich (mit der -K
Option) mit Befehlen getestet , die nur auf einen einzelnen Host abzielen
ansible -i ansible_hosts host1 --sudo -K # + commands ...
Mein Problem ist jetzt, dass die Benutzerkennwörter auf jedem Host unterschiedlich sind, aber ich finde keine Möglichkeit, dies in Ansible zu handhaben.
Unter Verwendung von -K
wird nur ein einziges Sudo-Kennwort im Voraus abgefragt, das dann ohne Aufforderung für alle nachfolgenden Hosts versucht zu werden scheint:
host1 | ...
host2 | FAILED => Incorrect sudo password
host3 | FAILED => Incorrect sudo password
host4 | FAILED => Incorrect sudo password
host5 | FAILED => Incorrect sudo password
Bisherige Forschung:
eine StackOverflow-Frage mit einer falschen Antwort ("use
-K
") und einer Antwort des Autors "Found out I needed passwordless sudo"In den Ansible-Dokumenten heißt es: "Die Verwendung von Sudo ohne Passwort erleichtert die Automatisierung, ist jedoch nicht erforderlich ." (Hervorhebung von mir)
Diese Sicherheits-StackExchange-Frage wird als gelesen betrachtet und
NOPASSWD
ist erforderlichArtikel "Skalierbare und verständliche Bereitstellung ...", der besagt:
"Für die Ausführung von sudo muss möglicherweise ein Kennwort eingegeben werden. Dies ist eine sichere Methode, um Ansible für immer zu blockieren. Eine einfache Lösung besteht darin, visudo auf dem Zielhost auszuführen und sicherzustellen, dass der Benutzer, mit dem sich Ansible anmeldet, kein Kennwort eingeben muss."
Artikel "Basic Ansible Playbooks" , in dem es heißt
"Ansible könnte sich als root auf dem Zielserver anmelden und die Notwendigkeit von sudo vermeiden oder dem ansiblen Benutzer sudo ohne Passwort erlauben, aber der Gedanke daran lässt meine Milz drohen, meine Speiseröhre aufzuspringen und meine Luftröhre zu blockieren, so dass ich nicht "
Meine Gedanken genau, aber wie soll man sich dann über einen einzelnen Server hinaus erstrecken?
ansible Ausgabe # 1227 , "Ansible sollte alle Benutzer in einem Wiedergabebuch nach dem Sudo-Passwort fragen", die vor einem Jahr von mpdehaan mit dem Kommentar "Habe keine große Nachfrage dafür gesehen, ich denke, die meisten Leute reden nur von einem Benutzerkonto oder die meiste Zeit mit Schlüsseln. "
Also ... wie nutzen Menschen Ansible in solchen Situationen? Einstellung NOPASSWD
in /etc/sudoers
, über Hosts Wiederverwendung Passwort oder ermöglicht Root SSH - Login alle scheinen ziemlich drastische Verringerungen der Sicherheit.
sudo
(für die noch ein Kennwort erforderlich sein sollte).
ansible_ssh_password
Einstellung gilt nur für das SSH-Passwort (der Hinweis ist im Namen ...). & Ich verwende bereits die schlüsselbasierte SSH-Anmeldung.