Wie sehe ich stdout für ansible-playbook Befehle? -v zeigt nur eine sichtbare Ausgabe an, nicht die einzelnen Befehle. Es wäre großartig, wenn ich sofort herausfinden könnte, wie das geht. Wenn also etwas ausfällt oder hängt, kann ich nachvollziehen, warum.
z.B
- name: print to stdout
action: command echo "hello"
würde drucken
TASK: [print variable] ********************************************************
hello
Antworten:
Ich denke, Sie können das Ergebnis in einer Variablen registrieren und dann mit Debug drucken.
quelle
- debug: var=hello
. Manchmal ist dies für die Ausgabe in mehreren Zeilen oder für die Ausgabe in Ansible-Modulen (anstelle voncommand
/shell
output) hilfreicher .shell: java -version 2>&1
register
Modul oder was auch immer es ist, keine Objekte, für die die Variablestdout
oderstderr
festgelegt ist. Es ist also wirklich schlimm, dass wir nicht nur die Ausgabe standardmäßig erhalten: |Anstelle von stdout würde ich stdout_lines vorschlagen . Bei mehrzeiliger Ausgabe ist dies viel besser, z
gibt
Bezüglich der Echtzeitausgabe für Debugging-Zwecke gibt es einen geschlossenen Fehlerbericht https://github.com/ansible/ansible/issues/3887#issuecomment-54672569 , in dem die Gründe erläutert werden, warum dies nicht möglich ist und nicht implementiert wird.
quelle
Ich habe festgestellt, dass die Verwendung von Minimal
stdout_callback
mit Ansible-Playbook eine ähnliche Ausgabe wie die Verwendung von Ad-hoc-Ansible liefert.In Ihrer ansible.cfg (Beachten Sie, dass ich unter OS X bin, und ändern Sie den
callback_plugins
Pfad entsprechend Ihrer Installation.)So dass eine Aufgabe wie diese
Gibt eine Ausgabe wie die eines Ad-hoc-Befehls aus
Ich verwende Ansible-Playbook 2.2.1.0
quelle