无论如何,当通过when子句忽略播放和/或任务输出时,抑制播放和/或任务输出?

时间:2020-05-06 19:12:41

标签: ansible

这是我的剧本(为简洁起见,对其进行了很大的修饰):

- 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 :(得分:0)

不可能在剧本,角色或任务级别上删除跳过的任务。可以通过修改默认的回调插件来完成。

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。这些已过时。