如何检查Ansible中是否存在库存组?

时间:2017-04-18 08:10:17

标签: ansible ansible-inventory

有没有办法检查库存组是否存在(如果没有,应该跳过任务)?

我知道您可以通过"' Cool-Server'来检查群组中是否存在主机。分组[' WebServers']"但是如果没有定义组本身,我很难弄清楚如何使ansible忽略任务。

我基本上有这样的任务:

- name: Some Task
  command: ls -ltr
  when:
    - "'Cool-Server' in groups['WebServers]"

并且我希望ansible能够仅在库存中定义组WebServers本身时才能运行此任务,否则它应该跳过该任务。现在,如果库存中不存在组WebServer,则ansible / jinja会因为尝试查找不存在的内容而感到不安和错误。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

以下内容对您有用:

when:
  - "'Cool-Server' in groups['WebServers] | default([])"