В любом случае, чтобы подавить воспроизведение и / или вывод задачи, когда он игнорируется с помощью предложения when? - PullRequest
1 голос
/ 06 мая 2020

Вот мой сценарий (сильно урезанный для краткости):

- name: "__PERFORMING_PREFLIGHT_CHECKS__"
  hosts: all
  become: true
  gather_facts: true
  run_once: true
  roles:
    - { role: roles/inventory-check, delegate_to: localhost, delegate_facts: true }
    - { role: roles/registering-facts }
    - { role: roles/verify-certificates, when: ssl.enable | d(false) | bool == true  }

- name: "__DEPLOYING_CLUSTER_CERTIFICATES__"
  hosts: all
  gather_facts: true
  become: true
  roles:
    - { role: roles/cluster-certificates, when: ssl.enable | d(false) | bool == true }

Когда ssl.enable == false, он не выполняет задачи, но я вижу раздел в выводе:

PLAY [__DEPLOYING_CLUSTER_CERTIFICATES__] 

TASK [roles/cluster-certificates : Setting variable cluster_ssl_dir=/minIO/data/.ssl] ******************************************************************************************
Wednesday 06 May 2020  12:00:07 -0700 (0:00:00.051)       0:00:48.417 *********

TASK [roles/cluster-certificates : Creating cluster certificate directories '{{ cluster_ssl_dir }}'] ******************************************************************************************
Wednesday 06 May 2020  12:00:08 -0700 (0:00:00.130)       0:00:48.548 *********

TASK [roles/cluster-certificates : Pushing cluster certificates] ******************************************************************************************
Wednesday 06 May 2020  12:00:08 -0700 (0:00:00.129)       0:00:48.677 *********

Как бы то ни было, чтобы подавить это?

Одно дело, если бы это был полезный вывод, говорящий «это было проигнорировано, потому что бла», но это даже не говорит об этом. Это сбивает с толку и заставляет людей, незнакомых с вашей автоматизацией, думать, что что-то работает неправильно.

1 Ответ

0 голосов
/ 07 мая 2020

Невозможно удалить пропущенные задачи на уровне пьесы, роли или задачи. Однако это можно сделать, изменив плагин обратного вызова по умолчанию.

В ansible .cfg добавьте следующее:

display_skipped_hosts = False

Вот а до и после с 2.9.6. Обратите внимание на две пропущенные задачи:

PLAY [test] **********************************************************************************************************************************************************************

TASK [include a role] ************************************************************************************************************************************************************

TASK [test_role : set_fact] ******************************************************************************************************************************************************
ok: [localhost]

TASK [test_role : stat] **********************************************************************************************************************************************************
skipping: [localhost]

TASK [test_role : debug] *********************************************************************************************************************************************************
skipping: [localhost]

PLAY RECAP ***********************************************************************************************************************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

И после. В сводке по-прежнему упоминаются пропущенные задачи:

PLAY [test] **********************************************************************************************************************************************************************

TASK [test_role : set_fact] ******************************************************************************************************************************************************
ok: [localhost]

PLAY RECAP ***********************************************************************************************************************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

Вы также можете встретить другие варианты, такие как stdout_callback = skippy. Однако они устарели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...