Ejecutar la tarea solo si el host no pertenece a un grupo
-
21-12-2019 - |
Pregunta
Me gustaría poder ejecutar una tarea ansible solo si la host de la PlayBook actual no pertenece a un determinado grupo.En código semi pseudo:
- name: my command
command: echo stuff
when: "if {{ ansible_hostname }} not in {{ ansible_current_groups }}"
¿Cómo debo hacer esto?
Solución
Aquí hay otra forma de hacer esto:
- name: my command
command: echo stuff
when: "'groupname' not in group_names"
group_names
es una variable mágica como se documenta aquí: http://docs.ansible.com/playbooks_variables.html#magic-variables-and-how-to-access-information-about-other-hosts :
group_names es una lista (matriz) de todos los grupos que se encuentra el host actual.
Otros consejos
Puede establecer una variable de control en archivos VARS ubicada en group_vars/
o directamente en el archivo de hosts como este:
[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
y ejecutar tareas como esta:
- name: "test"
command: "echo {{test_var}}"
when: test_var is defined and test_var
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow