Si está ejecutando Ansible> = 2.0, también existe el filtro de nombre de directorio que puede usar para extraer la parte del directorio de una ruta. De esa manera, solo puede usar una variable para mantener la ruta completa y asegurarse de que ambas tareas nunca se desincronicen.
Entonces, por ejemplo, si tiene un libro de jugadas dest_path
definido en una variable como esta, puede reutilizar la misma variable:
- name: My playbook
vars:
dest_path: /home/ubuntu/some_dir/some_file.txt
tasks:
- name: Make sure destination dir exists
file:
path: "{{ dest_path | dirname }}"
state: directory
recurse: yes
# now this task is always save to run no matter how dest_path get's changed arround
- name: Add file or template to remote instance
template:
src: foo.txt.j2
dest: "{{ dest_path }}"