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

StackOverflow https://stackoverflow.com//questions/21008083

  •  21-12-2019
  •  | 
  •  

Question

J'aimerais pouvoir exécuter une tâche ansible uniquement si l'hôte du jeu de jeu actuel n'appartient pas à un certain groupe.En code semi pseudo:

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

Comment devrais-je faire cela?

Était-ce utile?

La solution

Voici une autre façon de faire ceci:

- 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-a-access-information-about-OTHER-HOSTS :

Names GROUP_MAMES est une liste (tableau) de tous les groupes L'hôte actuel est dans.

Autres conseils

Vous pouvez définir une variable de contrôle dans les fichiers VARS situées dans group_vars/ ou directement dans un fichier d'hôtes comme celui-ci:

[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écuter des tâches comme ceci:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top