--- - name: Checkout 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: checkout dir: /mnt/data/{{ app_name }} secret_key: !vault | $ANSIBLE_VAULT;1.1;AES256 33393761643061393863616663323863663033313865383135663939636433393730643831616231 6661313965396164373665663063653461336230313762640a643763346132663238613362336563 35643862643139306333346163646161323031376237623661333434326639303233666135616635 3135333138336164380a396666363830316237643432366237626431616565376261336534346366 64656461343037323137643235373836633766366465373335653162623564653235623362303732 34313332316165643437613737663461656231326530356334353237643633303133306561303762 643439313139613931313630636333626532 mailgun_api_key: !vault | $ANSIBLE_VAULT;1.1;AES256 34656232613133373865613436623261656331663632666334626664366238636564633931613534 3137313234343739333738386664333532613066383533610a613337383462393432303235366132 30333433353362653765343638346639333735356631633633633633663863396139646431393463 3031346139393432390a336235363635653461303762393731313034393566333031356434386362 37333861343838623338663062303539616331323262643031613130363766626261653130373631 3063393236333239363366333338303665363930303031373965