Ansible bleibt beim Sammeln von Fakten hängen

Ansible bleibt beim Sammeln von Fakten hängen

wie in vielen anderen Beiträgen und Fragen zu lesen ist, kann das Sammeln von Fakten während der Ausführung eines Ansible-Playbooks einige Zeit in Anspruch nehmen und aus verschiedenen Gründen stecken bleiben.

In meinem Fall ist das Verhalten ziemlich seltsam:

Ich habe ein Ansible-Playbook zum Einrichten meiner Server. Alles ist über SSH erreichbar und das Playbook läuft wie erwartet, wenn es nur auf einem Host gleichzeitig ausgeführt wird (unabhängig davon, auf welchem ​​Host). Das Sammeln von Fakten funktioniert wie am Schnürchen und ist in Sekunden erledigt.

Das Problem tritt auf, wenn ich das Playbook auf mehreren Hosts ausführe. Sobald ich in meiner Hosts-Datei mehrere Hosts zur Einrichtung eingebe, dauert das Sammeln von Fakten unendlich lange.

Hat jemand dieses Verhalten auch erlebt und kann mir einige Hinweise zur Lösung dieses Problems geben?

Beim Starten des Playbooks wie

ansible-playbook frontend_rollout.yml -i hosts -K -vvv

Ansible möchte, dass ich wie erwartet das Sudo-Passwort und die SSH-Passphrase eingebe. Wenn ich nach der SSH-Passphrase für jeden Server frage, erscheint die Eingabeaufforderung in einer Zeile, wie unten dargestellt:

Enter passphrase for key '/home/bouldrini/.ssh/ansible_ssh': Enter passphrase for key '/home/bouldrini/.ssh/ansible_ssh':

und ich kann das Passwort für beide Eingabeaufforderungen nur einmal eingeben. Ist das das erwartete Verhalten? Habe ich etwas übersehen?

Antwort1

Für manche Leute könnte es interessant sein, deshalb habe ich die Frage jetzt nicht gelöscht.

Der Grund für die endlose Faktensammlung war das beschriebene Verhalten der SSH-Passphrase-Abfrage.

Ein normaler Mensch würde folgendes Verhalten erwarten:

[Pre fact gathering phase]
- prompt for ssh passphrase for host 1
- input for host 1
- prompt ssh passphrase for host 2
- input for host 2
[fact gathering phase]

ABER wie es tatsächlich war:

[Pre fact gathering phase]
- prompt ssh passphrase for host 1 AND host 2 in buggy output
- input for host 1
[fact gathering phase]
- host 1 fact gathering ok
- waiting for input for host 2 without any prompting

das war wirklich verwirrend.

Ich habe übrigens Ansible 2.8 auf Ubuntu 16.04 mit Python 3.7 verwendet. Ich habe nicht getestet, ob dieser Fehler auch in anderen Softwarekonstellationen auftritt, aber es könnte sein!

verwandte Informationen