--- - name: "Configure gramps application" hosts: all vars_files: - vars/secrets.yml vars: app_name: "gramps" app_user: "{{ app_name }}" app_owner_uid: 1009 app_owner_gid: 1010 base_dir: "{{ (application_dir, app_name) | path_join }}" data_dir: "{{ (base_dir, 'data') | path_join }}" media_dir: "{{ (base_dir, 'media') | path_join }}" cache_dir: "{{ (base_dir, 'cache') | path_join }}" backups_dir: "{{ (base_dir, 'backups') | path_join }}" gobackup_config: "{{ (base_dir, 'gobackup.yml') | path_join }}" tasks: - name: "Create user and environment" ansible.builtin.import_role: name: owner vars: owner_name: "{{ app_user }}" owner_uid: "{{ app_owner_uid }}" owner_gid: "{{ app_owner_gid }}" owner_extra_groups: ["docker"] - name: "Create application internal directories" ansible.builtin.file: path: "{{ item }}" state: "directory" owner: "{{ app_user }}" group: "{{ app_user }}" mode: "0750" loop: - "{{ base_dir }}" - "{{ data_dir }}" - "{{ media_dir }}" - "{{ cache_dir }}" - "{{ backups_dir }}" - name: "Copy gobackup config" ansible.builtin.template: src: "./files/{{ app_name }}/gobackup.template.yml" dest: "{{ gobackup_config }}" owner: "{{ app_user }}" group: "{{ app_user }}" mode: "0640" - name: "Copy backup script" ansible.builtin.template: src: "files/{{ app_name }}/backup.template.sh" dest: "{{ base_dir }}/backup.sh" owner: "{{ app_user }}" group: "{{ app_user }}" mode: "0750" - name: "Copy rename script" ansible.builtin.copy: src: "files/{{ app_name }}/gramps_rename.py" dest: "{{ base_dir }}/gramps_rename.py" owner: "{{ app_user }}" group: "{{ app_user }}" mode: "0750" - name: "Copy docker compose file" ansible.builtin.template: src: "./files/{{ app_name }}/docker-compose.template.yml" dest: "{{ base_dir }}/docker-compose.yml" owner: "{{ app_user }}" group: "{{ app_user }}" mode: "0640" - name: "Run application with docker compose" community.docker.docker_compose_v2: project_src: "{{ base_dir }}" state: "present" remove_orphans: true tags: - run-app