У меня есть игра Ansible для PGBouncer, которая отображает некоторый вывод из модуля статистики, встроенного в PGBouncer.
Моя проблема в том, что когда Ansible печатает вывод в терминал, он искажает переводы строки. Вместо того чтобы видеть
----------
| OUTPUT |
----------
я вижу
----------\n| OUTPUT |\n----------
Кто-нибудь знает, как заставить Ansible "красиво распечатать" вывод?
sed -e 's/\\n/'$'\\\n/g'
. Также актуально: comicjk.com/20\n
появляются в результате, так что вы можете использовать это регулярное выражение в своем сообщении отладки:msg: "{{ result.stdout | regex_replace('\\n', '\n') }}"
Если вы хотите более дружественный к человеку вывод, определите:
Это заставит ansible использовать модуль вывода отладки (ранее названный
human_log
), несмотря на то, что его неудачное имя менее многословно и намного проще для чтения людьми.Если вы получаете сообщение об ошибке, что этот модуль недоступен, обновите Ansible или добавьте этот модуль локально, если вы не можете обновить ansible, он будет работать с версиями ansible, такими как 2.0 или пробал, даже 1.9.
Другой вариант для настройки это добавить
stdout_callback = debug
в ваш ansible.cfgисточник
ANSIBLE_STDOUT_CALLBACK=yaml
. Я предпочитаю это, потому что это хорошо форматирует,fail
msg
когда я предоставляю объект.Вы можете использовать плагин обратного вызова . Это позволит повторно проанализировать ваш вывод и легко включается и выключается.
источник
CallbackBase
импортированного с,from ansible.plugins.callback import CallbackBase
чтобы класс обратного вызова работал.Нашел этот путь на форуме группы Ansible Project:
Мы в основном превращаем это в список, разбивая его на новую строку, а затем распечатывая этот список.
источник
ignore_errors: yes
к исходной команде, а затем что-то вроде `- assert: that:" test.rc == 0 ".Вы можете использовать модуль паузы :
Переходит без ввода, определяя минуты или секунды, но затем пользовательский ввод не фиксируется.
Кредит: https://github.com/ansible/ansible/issues/17446#issuecomment-245391682
источник
Если вы хотите увидеть его в формате, который практически имитирует стандартный вывод, вы можете использовать
debug
плагин обратного вызова сdebug
модулем в Ansible 2.7+ следующим образом:источник