Se você estiver executando Ansible> = 2.0, há também o filtro dirname que pode ser usado para extrair a parte do diretório de um caminho. Dessa forma, você pode usar apenas uma variável para conter todo o caminho e garantir que as duas tarefas nunca saiam de sincronia.
Então, por exemplo, se você tiver o manual dest_path
definido em uma variável como esta, você pode reutilizar a mesma variável:
- 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 }}"