หากคุณกำลังรัน Ansible> = 2.0 นอกจากนี้ยังมีตัวกรอง dirname ที่คุณสามารถใช้เพื่อแยกส่วนไดเร็กทอรีของพา ธ ได้ ด้วยวิธีนี้คุณสามารถใช้ตัวแปรเดียวเพื่อเก็บเส้นทางทั้งหมดเพื่อให้แน่ใจว่าทั้งสองงานจะไม่ซิงค์กัน
ตัวอย่างเช่นหากคุณมี playbook ที่dest_path
กำหนดไว้ในตัวแปรเช่นนี้คุณสามารถใช้ตัวแปรเดิมซ้ำได้:
- 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 }}"