ansible - tutorial - Ejecutar tarea solo si el host no pertenece a un grupo
ansible tutorial español (2)
Aquí hay otra manera 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 en los que se encuentra el host actual.
Me gustaría poder ejecutar una tarea ansible solo si el host del libro de jugadas actual no pertenece a un cierto grupo. En semi pseudo código:
- name: my command
command: echo stuff
when: "if {{ ansible_hostname }} not in {{ ansible_current_groups }}"
¿Cómo debería hacer esto?
Puede establecer una variable de control en archivos vars ubicados en group_vars/
o directamente en un 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 ejecuta tareas como esta:
- name: "test"
command: "echo {{test_var}}"
when: test_var is defined and test_var