--- # tasks file for nextcloud - name: Ensure nextcloud config directory exists file: path: "{{ nextcloud_install_path }}/nextcloud" state: directory owner: '{{ nextcloud_install_user }}' group: '{{ nextcloud_install_user }}' - name: Provide docker-compose.yml template: src: templates/docker-compose.nextcloud.yml.j2 dest: "{{ nextcloud_install_path }}/nextcloud/docker-compose.yml" owner: "{{ nextcloud_install_user }}" group: "{{ nextcloud_install_user }}" mode: '0644' - name: Output docker-compose.yml shell: cat {{ nextcloud_install_path }}/nextcloud/docker-compose.yml register: output - debug: var: output - name: Provide compose project env vars template: src: templates/env.j2 dest: "{{ nextcloud_install_path }}/nextcloud/.env" owner: "{{ nextcloud_install_user }}" group: "{{ nextcloud_install_user }}" mode: '0640' tags: config - name: Provide database env vars template: src: templates/db.env.j2 dest: "{{ nextcloud_install_path }}/nextcloud/db.env" owner: "{{ nextcloud_install_user }}" group: "{{ nextcloud_install_user }}" mode: '0640' tags: config - name: Provide Nextcloud env vars template: src: templates/nextcloud.env.j2 dest: "{{ nextcloud_install_path }}/nextcloud/nextcloud.env" owner: "{{ nextcloud_install_user }}" group: "{{ nextcloud_install_user }}" mode: '0640' tags: config - name: Provide restic-compose-backup env vars template: src: templates/restic-compose-backup.env.j2 dest: "{{ nextcloud_install_path }}/nextcloud/restic-compose-backup.env" owner: "{{ nextcloud_install_user }}" group: "{{ nextcloud_install_user }}" mode: '0640' tags: config when: nextcloud_enable_restic_compose_backup == true - name: "docker-compose: Teardown existing Nextcloud service" docker_compose: project_src: "{{ nextcloud_install_path }}/nextcloud/" state: absent tags: ['never', 'teardown'] - name: "docker-compose: Start Nextcloud service" docker_compose: project_src: "{{ nextcloud_install_path }}/nextcloud/" register: output tags: service_start - debug: var: output - assert: that: - "output.ansible_facts['nextcloud-app']['nextcloud{{ nextcloud_multitenant_postfix }}_nextcloud-app_1'].state.running" - name: "Get container IP" set_fact: nextcloud_ip: "{{ output.ansible_facts['nextcloud-app']['nextcloud' + nextcloud_multitenant_postfix + '_nextcloud-app_1'].networks['nextcloud' + nextcloud_multitenant_postfix + '_default'].IPAddress }}" - name: "Waiting for Nextcloud container to become available" become: false wait_for: host: "{{ nextcloud_ip }}" port: 80 - name: "docker-compose: Set overwriteprotocol using occ" shell: chdir: "{{ nextcloud_install_path }}/nextcloud/" cmd: docker-compose exec -T -u www-data nextcloud{{ nextcloud_multitenant_postfix }}_nextcloud-app_1 /bin/bash -c './occ config:system:set overwriteprotocol --value="{{ nextcloud_overwrite_protocol }}"' - name: "docker-compose: Set overwrite.cli.url using occ" shell: chdir: "{{ nextcloud_install_path }}/nextcloud/" cmd: docker-compose exec -T -u www-data nextcloud{{ nextcloud_multitenant_postfix }}_nextcloud-app_1 /bin/bash -c './occ config:system:set overwrite.cli.url --value="{{ nextcloud_overwrite_cli_url }}"' - name: "docker-compose: Set overwritehost using occ" shell: cmd: docker-compose exec -T -u www-data nextcloud{{ nextcloud_multitenant_postfix }}_nextcloud-app_1 /bin/bash -c './occ config:system:set overwritehost --value="{{ nextcloud_overwrite_host }}"' chdir: "{{ nextcloud_install_path }}/nextcloud/" - name: "Test whether Nextcloud is healthy from the outside" when: not ansible_check_mode become: false uri: url: "{{ nextcloud_overwrite_cli_url }}/login" return_content: yes timeout: 300 validate_certs: no register: url_check delegate_to: localhost until: "'Nextcloud' in url_check.content" retries: 5 delay: 10 tags: health - debug: var: url_check tags: debug