我希望能够运行一个可行的任务,只有当前的主机 不属于这里的剧本到一个特定的组。在半伪代码中:
- name: my command command: echo stuff when: "if {{ ansible_hostname }} not in {{ ansible_current_groups }}"
我该怎么做?
您可以在位于 group_vars/的 vars 文件中设置控制变量,或者直接在 host 文件中设置,如下所示:
group_vars/
[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
还有一个办法:
- name: my command command: echo stuff when: "'groupname' not in group_names"
group_names是一个神奇的变量,如下所示:
group_names
Group _ name 是当前主机所在的所有组的列表(数组)。