--- - name: 'Configure gramps application' hosts: all vars_files: - vars/ports.yml - vars/vars.yml vars: app_name: 'gramps' base_dir: '/home/major/applications/{{ app_name }}/' tasks: - name: 'Create application directories' ansible.builtin.file: path: '{{ item }}' state: 'directory' mode: '0755' loop: - '{{ base_dir }}' - '{{ (base_dir, "data") | path_join }}' - name: 'Copy application files' ansible.builtin.copy: src: '{{ item }}' dest: '{{ base_dir }}' mode: '0644' loop: - './files/apps/{{ app_name }}/docker-compose.yml' - name: 'Set up environment variables for application' ansible.builtin.template: src: 'env.j2' dest: '{{ (base_dir, ".env") | path_join }}' mode: '0644' vars: env_dict: WEB_SERVER_PORT: '{{ gramps_port }}' SECRET_KEY: '{{ gramps.secret_key }}' AWS_ACCESS_KEY_ID: '{{ gramps.aws_access_key_id }}' AWS_SECRET_ACCESS_KEY: '{{ gramps.aws_secret_access_key }}' POSTBOX_HOST: '{{ postbox.host }}' POSTBOX_PORT: '{{ postbox.port }}' POSTBOX_USER: '{{ postbox.user }}' POSTBOX_PASS: '{{ postbox.pass }}' - name: 'Run application with docker compose' community.docker.docker_compose_v2: project_src: '{{ base_dir }}' state: 'present'