playbooks - ansible tower
ansible: compruebe si el archivo existe en la máquina*local* (1)
Delegar las tareas a localhost a través de la instrucción local_action debe hacer lo que desee:
- name: Check for ~/.blah/config
local_action: stat path=/home/ubuntu/.blah/config
register: stat_blah_config
Tengo una situación en la que necesito verificar el estado de un archivo en la máquina local (la que llamaré ansible-playbook ...
).
Si existe un archivo creado por el usuario, debe copiarse a los hosts remotos. Si no existe, entonces ninguno de los hosts remotos lo necesita.
Sé que he hecho cosas como:
- name: Check for ~/.blah/config
stat: path=/home/ubuntu/.blah/config
register: stat_blah_config
- name: Do something with blah config
shell: ~/do_something_with_config.sh
when: stat_aws_config.stat.exists == true
Pero eso solo funcionará si el archivo existe remotamente. ¿Hay una manera de ejecutar condicionalmente una tarea (como una copia) solo si el archivo existe localmente (hacer que la stat
en la primera tarea se ejecute localmente en lugar de en forma remota), y fallar silenciosamente si no lo hace? No estoy seguro de si ansible tenga este tipo de funcionalidad, pero sería útil.