Exécuter la tâche uniquement si l’hôte n’appartient pas à un groupe

Je voudrais pouvoir exécuter une tâche Ansible uniquement si l’hôte du playbook actuel n’appartient pas à un groupe particulier. En pseudo code semi:

- name: my command command: echo stuff when: "if {{ ansible_hostname }} not in {{ ansible_current_groups }}" 

Comment devrais-je faire ça?

Voici une autre façon de procéder:

 - name: my command command: echo stuff when: "'groupname' not in group_names" 

group_names est une variable magique telle que documentée ici: http://docs.ansible.com/playbooks_variables.html#magic-variables-and-how-to-access-information-about-other-hosts :

group_names est une liste (tableau) de tous les groupes dans lesquels se trouve l’hôte actuel.

Vous pouvez définir une variable de contrôle dans les fichiers vars situés dans group_vars/ ou directement dans le fichier hosts comme ceci:

 [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 

Et exécutez des tâches comme celles-ci:

 - name: "test" command: "echo {{test_var}}" when: test_var is defined and test_var