44 lines
1.4 KiB
YAML
44 lines
1.4 KiB
YAML
---
|
|
- 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/<host>.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')
|