--- - name: Deploy Docker Service Configurations (Optimized & Vault-ready) hosts: - rinoa - rikku - benedikta gather_facts: false vars: # template_base_path and vault_addr from group_vars/all.yml # appdata_base_path, secrets_path, vault_token_cleaned from host_vars/.yml tasks: - name: Find all files for this host ansible.builtin.find: paths: "{{ template_base_path }}/{{ inventory_hostname }}" recurse: yes register: host_files delegate_to: localhost run_once: true - name: Deploy Jinja2 templates (skip unchanged) ansible.builtin.template: src: "{{ item.path }}" dest: "{{ appdata_base_path }}/{{ item.path | relpath(template_base_path + '/' + inventory_hostname) | regex_replace('\\.j2$', '') }}" mode: '0644' create_dirs: yes loop: "{{ host_files.files }}" loop_control: label: "{{ item.path }}" when: item.path.endswith('.j2') - name: Deploy static files (skip unchanged) ansible.builtin.copy: src: "{{ item.path }}" dest: "{{ appdata_base_path }}/{{ item.path | relpath(template_base_path + '/' + inventory_hostname) }}" mode: '0644' remote_src: no create_dirs: yes loop: "{{ host_files.files }}" loop_control: label: "{{ item.path }}" when: not item.path.endswith('.j2')