Ansible 中的显式空组

Pau*_*her 4 ansible

我有一个适用于各种库存的剧本。一些剧本并不适用于所有库存。

我可以将组从清单中删除,或者我可以添加它但将其留空。在这两种情况下,这会在运行可选播放时产生警告:

[WARNING]: Could not match supplied host pattern, ignoring: myoptionalgroup
Run Code Online (Sandbox Code Playgroud)

我仍然想使用此类警告来生成报告以捕获错误 - 例如,在游戏或清单中输入错误的组名,但我不希望它在我知道是故意的时出现。

在我知道在给定清单中没有适用任何主机的情况下,我如何才能最好地抑制警告?

Kon*_*rov 6

几乎没有办法抑制此警告本身,但您可以在某些情况下强行结束游戏。

例如,您可以检查当前播放运行中的主机,如果有dummy主机,则结束播放:

---
- hosts: localhost
  gather_facts: no
  tasks:
    - debug:
        msg: hello 1

- hosts: optional
  gather_facts: no
  pre_tasks:
    - meta: end_play
      when: ('dummy' in play_hosts)
  tasks:
    - debug:
        msg: hello 2

- hosts: localhost
  gather_facts: no
  tasks:
    - debug:
        msg: hello 3
Run Code Online (Sandbox Code Playgroud)

这会:

  • 如果optional组不存在或为空,则发出警告并跳过播放
  • 如果optional组包含dummy主机,则结束预任务
  • 如果optional组包含其他主机并且没有,则照常执行任务dummy