2016-05-03 5 views
0

Ich möchte Ansible als Teil einer anderen Python-Software verwenden. In dieser Software habe ich eine Hostliste mit ihrem Benutzer/Passwort.Wie ein Benutzer/Passwort in Ansible-Befehl übergeben werden

Gibt es eine Möglichkeit, den Benutzer/Pass der SSH-Verbindung an den Ad-hoc-Befehl Ansible zu übergeben oder in einer Datei verschlüsselt zu schreiben?

Oder verstehe ich alles falsch, und der einzige Weg, es zu tun ist mit SSH-Zertifizierung?

+1

Sie möchten keine Kennwörter auf einem Computer speichern. Das ist eine schreckliche Sicherheitspraxis. :-) Verwenden Sie stattdessen SSH-Schlüssel zur Authentifizierung. Die [SSH-Dokumentation] (http://www.openssh.com/manual.html) enthält alles, was Sie benötigen, insbesondere [ssh-keygen] (http://man.openbsd.org/ssh-keygen). Erstellen Sie Ihren Schlüssel, und fügen Sie dann den öffentlichen Teil (d. H. '~/.ssh/id_ed25519.pub') der Datei' ~/.ssh/authorized_keys' auf jedem Zielhost hinzu. – ghoti

+1

Sie können Vault verwenden, um Daten verschlüsselt zu speichern (AES-256), aber ich bin mir nicht sicher, ob Sie das Passwort weitergeben können, wenn Sie es nicht eingeben (siehe meine Antwort) –

Antwort

2

Wenn Sie mit Remote-Computern sprechen, geht Ansible standardmäßig davon aus, dass Sie mit SSH-Schlüsseln verwenden. SSH-Schlüssel werden empfohlen, aber die Kennwortauthentifizierung kann auch bei Bedarf mit der Option --ask-pass verwendet werden. Wenn sudo-Funktionen verwendet und wenn sudo ein Kennwort erfordert, geben Sie auch --ask-werden-pass (zuvor --ask-sudo-pass, der veraltet ist).

Niemals die Funktion verwendet aber die docs sagen Sie können.

+0

Wahrscheinlich müssen Sie bei [this] (http : //docs.ansible.com/ansible/playbooks_intro.html#hosts-and-users) auch. –

+1

dies funktioniert wie angekündigt. Sie können sie auch in einer Inventardatei speichern – smiller171

+0

Eigentlich ist das Inventar eine bessere Option, aber nicht so sicher, also könnten Sie diese Parameter wahrscheinlich in einem Skript hinzufügen (wo sie entschlüsselt werden können). [hier] (http://docs.ansible.com/ansible/intro_inventory.html#non-ssh-connection-types) ist, wie man den Benutzer/pass im Inventar speichert: 'ansible_user',' ansible_ssh_pass' –