--- - name: Collabora hosts: servers gather_facts: false tasks: - name: Create dir ansible.builtin.file: path: "{{ dir }}" state: directory mode: "0775" - name: Write files ansible.builtin.copy: src: "{{ item }}" dest: "{{ dir }}/" mode: preserve with_fileglob: - files/{{ app_name }}/* - files/{{ app_name }}/.* notify: - Restart service - name: Write templates ansible.builtin.template: src: "{{ item }}" dest: "{{ dir }}/{{ item | basename | regex_replace('\\.j2$', '') }}" mode: preserve with_fileglob: - templates/{{ app_name }}/*.j2 - templates/{{ app_name }}/.*.j2 notify: - Restart service - name: Ensure service is started community.docker.docker_compose_v2: project_src: "{{ dir }}" state: present handlers: - name: Restart service community.docker.docker_compose_v2: project_src: "{{ dir }}" state: restarted vars: app_name: collabora dir: /mnt/data/{{ app_name }} password: !vault | $ANSIBLE_VAULT;1.1;AES256 64396634656334643030623536313236663438653730663266346530326233353836656339356631 3762666139313164663236323936626530623334356663620a336232383763333039643834636131 66396663393662316535346530656636343931383833313234653338623934346265363563366138 3838653135306563340a656661343434663230336566396335633165356663633030383065626233 34633162303534353231636537613262653865646231313464316164653239376166316266663963 6163643335386535366239363637613066306661343866393433