Jak wyświetlić stdout dla komend ansible-playbook? -v wyświetla tylko wyjściowe odpowiedzi, a nie poszczególne polecenia. Byłoby wspaniale, gdybym mógł wymyślić, jak to zrobić natychmiast, więc jeśli coś zawiedzie lub zawiesi się, zobaczę, dlaczego.
na przykład
- name: print to stdout
action: command echo "hello"
wydrukuje
TASK: [print variable] ********************************************************
hello
Odpowiedzi:
Myślę, że możesz zarejestrować wynik w zmiennej, a następnie wydrukować za pomocą debugowania.
źródło
- debug: var=hello
. Czasami jest to bardziej pomocne w przypadku wyjścia wielowierszowego lub wyjścia modułu Ansible (zamiastcommand
/shell
output).shell: java -version 2>&1
register
moduł, czy cokolwiek to jest, nie produkuje obiektów, które mają ustawioną zmiennąstdout
lubstderr
... .... więc naprawdę źle, że domyślnie nie otrzymujemy danych wyjściowych: |Zamiast stdout sugerowałbym użycie stdout_lines . W przypadku produkcji wieloliniowej jest to o wiele ładniejsze, np
daje
Jeśli chodzi o dane wyjściowe w czasie rzeczywistym do celów debugowania, jest zamknięty raport o błędach https://github.com/ansible/ansible/issues/3887#issuecomment-54672569 omawiający przyczyny, dla których nie jest to możliwe i nie zostanie zaimplementowane.
źródło
Zauważyłem, że użycie minimum
stdout_callback
z playbookiem ansible dało podobny efekt jak użycie ad-hoc ansible.W pliku ansible.cfg (pamiętaj, że korzystam z systemu OS X, więc zmień
callback_plugins
ścieżkę w celu dopasowania do instalacji)Więc takie zadanie jak to
Daje takie dane wyjściowe, jak w przypadku polecenia ad-hoc
Używam ansible-playbook 2.2.1.0
źródło