如何检查 Ansible 中是否存在库存组?
How to check if inventory group exists in Ansible?
有没有办法检查清单组是否存在(如果不存在,则应跳过该任务)?
我知道你可以通过“'Cool-Server' in groups['WebServers']”来检查一个主机是否存在于一个组中,但我很难弄清楚如何让 ansible ignore如果组本身未定义,则为任务。
我基本上有这样的任务:
- name: Some Task
command: ls -ltr
when:
- "'Cool-Server' in groups['WebServers]"
我希望 ansible 只能 运行 如果组 WebServers 本身在清单中定义了这个任务,否则它应该跳过这个任务。现在,如果清单中不存在 WebServers 组,ansible/jinja 会崩溃并出错,因为它试图寻找不存在的东西。
有什么想法吗?
以下应该适合您:
when:
- "'Cool-Server' in groups['WebServers] | default([])"
有没有办法检查清单组是否存在(如果不存在,则应跳过该任务)?
我知道你可以通过“'Cool-Server' in groups['WebServers']”来检查一个主机是否存在于一个组中,但我很难弄清楚如何让 ansible ignore如果组本身未定义,则为任务。
我基本上有这样的任务:
- name: Some Task
command: ls -ltr
when:
- "'Cool-Server' in groups['WebServers]"
我希望 ansible 只能 运行 如果组 WebServers 本身在清单中定义了这个任务,否则它应该跳过这个任务。现在,如果清单中不存在 WebServers 组,ansible/jinja 会崩溃并出错,因为它试图寻找不存在的东西。
有什么想法吗?
以下应该适合您:
when:
- "'Cool-Server' in groups['WebServers] | default([])"