
Ich versuche, ein Ansible-Playbook von Cron aus (daher ist keine Interaktion möglich) auf einer Gruppe von Servern mit sudo auszuführen. Mehrere Tutorials und Beiträge im Internet empfehlen, das sudo-Passwort im Klartext festzulegen oder einen Ansible-Vault einzurichten (wofür auch eine Ansible-Vault-Passwortdatei im Klartext irgendwo erforderlich ist, also kein Problem). Einige empfehlen, NOPASSWD in der sudoers-Datei für den Benutzer festzulegen, der die sudo-Befehle ausführt, was ich auch nicht tun kann. Alle diese Lösungen bergen Sicherheitsbedenken.
Daher habe ich mich gefragt, ob es einen Weg gibt, dies zu umgehen? Vielleicht das Klartextkennwort so verschlüsseln, dass Ansible es entschlüsseln und lesen kann?
Dank im Voraus!
Antwort1
Ansible akzeptiert das Passwort, wenn es in gehashter Form vorliegt. Ich habe ein gehashtes Passwort mit Python erstellt.
python -c 'import crypt; print crypt.crypt("password", "$6$random_salt")'
python3 -c 'import crypt; print(crypt.crypt("password", crypt.mksalt(crypt.METHOD_SHA512)))'
ersetze dasPasswortmit Ihrem Passwort, dann können Sie die Ausgabe des obigen Befehls in Ihre Ansible-Aufgabe einfügen.
- name: name
become: true
task:
password: hashed password