--- - name: "Configure wanderer application" hosts: all vars: app_name: "wanderer" app_user: "{{ app_name }}" app_owner_uid: 1018 app_owner_gid: 1019 base_dir: "{{ (application_dir, app_name) | path_join }}" data_dir: "{{ (base_dir, 'data') | path_join }}" wanderer_origin: "https://wanderer.vakhrushev.me" 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 }}" - 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 }}" - "{{ (data_dir, 'pb_data') | path_join }}" - "{{ (data_dir, 'uploads') | path_join }}" - "{{ (data_dir, 'ms_data') | path_join }}" # Бэкап идёт целиком через backup-targets: оркестратор backup-all.py читает # этот файл и снимает data_dir как есть. Свой gobackup здесь не нужен — # убираем то, что осталось от прежней схемы с дампом БД. - name: "Remove legacy backup files" ansible.builtin.file: path: "{{ (base_dir, item) | path_join }}" state: absent loop: - "backup.sh" - "gobackup.yml" - name: "Create backup targets file" ansible.builtin.copy: dest: "{{ base_dir }}/backup-targets" content: | {{ data_dir }} owner: "{{ app_user }}" group: "{{ app_user }}" mode: "0640" - 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" # Секреты стоят прямыми значениями в environment: — без no_log их # печатает --diff. Файловых секретов wanderer не умеет, снять не выйдет. no_log: true - name: "Run application with docker compose" community.docker.docker_compose_v2: project_src: "{{ base_dir }}" state: "present" remove_orphans: true tags: - run-app