仅在主机不属于组时才运行任务
只有在当前剧本的主机不属于某个特定组的情况下,我才能够运行一个合理的任务。 在半伪代码中:
- name: my command command: echo stuff when: "if {{ ansible_hostname }} not in {{ ansible_current_groups }}"
我应该怎么做?
这是另一种方法来做到这一点:
- name: my command command: echo stuff when: "'groupname' not in group_names"
group_names
是一个魔术variables,如下所示: http : //docs.ansible.com/playbooks_variables.html#magic-variables-and-how-to-access-information-about-other-hosts :
group_names是当前主机所在组的列表(数组)。
你可以在位于group_vars/
variables文件中设置一个控制variables,或者直接在hosts文件中设置一个控制variables:
[vagrant:vars] test_var=true [location-1] 192.168.33.10 hostname=apollo [location-2] 192.168.33.20 hostname=zeus [vagrant:children] location-1 location-2
并运行这样的任务:
- name: "test" command: "echo {{test_var}}" when: test_var is defined and test_var