Ich habe ein Ansible-Spiel für PGBouncer , das einige Ausgaben eines in PGBouncer integrierten Statistikmoduls anzeigt.
Mein Problem ist, dass wenn Ansible die Ausgabe an das Terminal druckt, es die Zeilenumbrüche verstümmelt. Anstatt zu sehen
----------
| OUTPUT |
----------
Aha
----------\n| OUTPUT |\n----------
Weiß jemand, wie man Ansible dazu bringt, die Ausgabe "schön zu drucken"?
sed -e 's/\\n/'$'\\\n/g'
. Ebenfalls relevant: comicjk.com/20\n
Wird meistens im Ergebnis angezeigt, sodass Sie diesen regulären Ausdruck in Ihrer Debug-Meldung verwenden können:msg: "{{ result.stdout | regex_replace('\\n', '\n') }}"
Wenn Sie eine menschlichere Ausgabe wünschen, definieren Sie:
Dadurch kann das Debug-Ausgabemodul (zuvor benannt
human_log
) problemlos verwendet werden, obwohl sein unglücklicher Name weniger ausführlich und für den Menschen viel einfacher zu lesen ist.Wenn Sie eine Fehlermeldung erhalten, dass dieses Modul nicht verfügbar ist, aktualisieren Sie Ansible oder fügen Sie dieses Modul lokal hinzu, wenn Sie Ansible nicht aktualisieren können. Es funktioniert mit Versionen von Ansible wie 2.0 oder wahrscheinlich sogar 1.9.
Eine andere Möglichkeit, dies zu konfigurieren, ist das Hinzufügen
stdout_callback = debug
zu Ihrer ansible.cfgquelle
ANSIBLE_STDOUT_CALLBACK=yaml
. Ich bevorzuge es, weil es schön formatiert,fail
msg
wenn ich ein Objekt zur Verfügung stelle.Sie können ein Callback-Plugin verwenden . Dadurch wird Ihre Ausgabe neu analysiert und kann problemlos ein- und ausgeschaltet werden.
quelle
CallbackBase
with erben ,from ansible.plugins.callback import CallbackBase
damit die Callback-Klasse funktioniert.Gefunden diese Art und Weise in ansible Projektgruppe Forum:
Wir wandeln dies im Grunde genommen in eine Liste um, indem wir sie nach Zeilenumbrüchen aufteilen und diese Liste dann ausdrucken.
quelle
ignore_errors: yes
den ursprünglichen Befehl und später so etwas wie "- assert: that:" test.rc == 0 "hinzufügen.Sie können das Pausenmodul verwenden :
Wird ohne Eingabe durch Definieren von Minuten oder Sekunden fortgesetzt , Benutzereingaben werden jedoch nicht erfasst.
Kredit: https://github.com/ansible/ansible/issues/17446#issuecomment-245391682
quelle
Wenn Sie es in einem Format anzeigen möchten, das die Standardausgabe praktisch imitiert, können Sie das
debug
Callback-Plugin mit demdebug
Modul in Ansible 2.7+ wie folgt verwenden:quelle