Назад | Перейти на главную страницу

Как избежать отображения пропущенных задач Ansible?

Вывод моих playbooks всегда полностью завален бесполезными выводами о том, какие задачи были пропущены, что раздражает и отнимает много времени, чтобы пройти и найти конкретную информацию, которую я ищу.

Вот пример сборника пьес

- name: Stopping Puppet Agent
  service: name=pe-puppet state=stopped
  ignore_errors: true
  register: result
- include: rollback/restart-pe-puppet.yml
  when: result|failed

И связанный с ним вывод:

TASK: [name | Stopping Puppet Agent] **************************************
<server.name> REMOTE_MODULE service name=pe-puppet state=stopped
changed: [server.name] => {"changed": true, "name": "pe-puppet",     "state":"stopped"}

TASK: [name | judge_log msg='Restarting pe-puppet'] ***********************
skipping: [server.name]

TASK: [name | starting pe-puppet] *****************************************
skipping: [server.name]

TASK: [name | judge_log msg='pe-puppet restart successful'] ***************
skipping: [sserver.name]

TASK: [name | judge_log msg='pe-puppet restart failed' sec=FATAL] *********
skipping: [server.name]

TASK: [name | fail msg="Failed to start pe-puppet."] **********************
skipping: [server.name]

TASK: [name | judge_log msg='{{APP_NAME | capitalize}} deployment failed.'] ***
skipping: [server.name]

TASK: [name | fail msg="The {{APP_NAME | capitalize}} deployment failed."] ***
skipping: [server.name]

Практически весь этот вывод мне бесполезен. В display_skipped_hosts говорит, что по-прежнему вызывает отображение заголовка задачи. Есть ли способ полностью пропустить пропущенные задачи?

Я использую другой способ без изменения кода:

Ansible использует плагин обратного вызова default для отображения вывода, но вы можете использовать плагин обратного вызова skippy вместо default. 'skippy' использовать 'default', за исключением пропущенных задач.

Чтобы использовать пропущенный плагин, добавьте следующую строку (или раскомментируйте ее) в свой файл ansible.cfg:

stdout_callback = skippy

Чтобы локализовать ansible.cfg, используйте команду:

ansible --version

Если у вас нет этого файла, возьмите пример файла из доступных источников и скопируйте его в свою рабочую папку, откуда вы вызываете ansible.

Сейчас skippy модуль устарел.

Создайте ansible.cfg в корне вашего проекта и добавьте следующие инструкции:

[defaults]
display_skipped_hosts = no

Вы также можете редактировать свой глобальный файл конфигурации /etc/ansible/ansible.cfg.

Если в документации говорится, что заголовок все еще отображается, вы не сможете этого избежать, если не измените поведение ansible, отредактировав код. Если вы все еще настаиваете на его редактировании, то можете попробовать найти файл lib/ansible/callbacks.py и добавьте эту строку строки

msg = ''

перед эта линия

display(msg, color='cyan', runner=self.runner)