【问题标题】:How to check if inventory group exists in Ansible?如何检查 Ansible 中是否存在库存组?
【发布时间】:2017-04-18 08:10:17
【问题描述】:

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

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

我基本上有这样的任务:

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

如果组 WebServers 本身在清单中定义,我希望 ansible 能够运行此任务,否则它应该跳过该任务。现在,如果清单中不存在 WebServers 组,ansible/jinja 会因为试图寻找不存在的东西而发疯并出错。

有什么想法吗?

【问题讨论】:

    标签: ansible ansible-inventory


    【解决方案1】:

    以下内容应该适合您:

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

    【讨论】:

    • 谢谢。我刚刚找到了相同的解决方案,很高兴看到您在此处的回答对其进行了验证。
    猜你喜欢
    • 1970-01-01
    • 2022-10-20
    • 1970-01-01
    • 2011-09-08
    • 2019-11-29
    • 2017-04-16
    • 2015-07-31
    • 2019-06-07
    相关资源
    最近更新 更多