--- # - name: Clean nextcloud restore dir content # become_user: "{{ nextcloud_websrv_user }}" # become: true # ansible.builtin.file: # path: "{{ item }}" # state: absent # loop: # - "{{ nextcloud_tmp_path }}" # - "{{ nextcloud_webroot }}/data" - name: Recreate nextcloud restore dir # necessite le paquet acl installé become_user: "{{ nextcloud_websrv_user }}" become: true ansible.builtin.file: path: "{{ item }}" state: directory loop: - "{{ nextcloud_tmp_path }}" - "{{ nextcloud_webroot }}/data" # - name: Copy files from ansible controller to vm host # become_user: "{{ nextcloud_websrv_user }}" # become: true # ansible.builtin.copy: # src: "{{ nextcloud_tmp_path }}/" # dest: "{{ nextcloud_tmp_path }}/" # - name: Extract nc data archive # become_user: "{{ nextcloud_websrv_user }}" # become: true # ansible.builtin.unarchive: # src: "{{ nextcloud_tmp_path }}/data.tar.gz" # dest: "{{ nextcloud_webroot }}/data" - name: Stop webserver service become: true become_user: root ansible.builtin.service: name: "{{ nextcloud_websrv }}" state: stopped - name: "[PostgreSQL] - {{ nextcloud_websrv_user }} role is created." become_user: postgres become: true community.postgresql.postgresql_user: name: "{{ nextcloud_websrv_user }}" state: present role_attr_flags: CREATEDB - name: "[PostgreSQL] - {{ nextcloud_db_name }} database is created." become_user: postgres become: true community.postgresql.postgresql_db: name: "{{ nextcloud_db_name }}" state: "{{ item }}" owner: "{{ nextcloud_websrv_user }}" target: "{{ nextcloud_tmp_path }}/dump.sql" loop: - absent - present - restore # - name: Restore psql dump # noqa : command-instead-of-module # become: true # become_user: postgres # ansible.builtin.command: "pg_restore -c -F c -O -x -d {{ nextcloud_db_name }} {{ nextcloud_tmp_path }}/dump.pgc" - name: Update data fingerprint post db restore # noqa : command-instead-of-module become_user: "{{ nextcloud_websrv_user }}" become: true ansible.builtin.command: './console maintenance:data-fingerprint' args: chdir: "{{ nextcloud_webroot }}" - name: create nextcloud config become_user: "{{ nextcloud_websrv_user }}" become: true ansible.builtin.template: src: templates/config_template.j2 dest: "{{ nextcloud_webroot }}/config/config.php" owner: "{{ nextcloud_websrv_user }}" group: "{{ nextcloud_websrv_user }}" mode: '640' # or u=rwx,g=r,o= - name: Deactivate nextcloud maintenance mode # noqa : command-instead-of-module become_user: "{{ nextcloud_websrv_user }}" become: true ansible.builtin.command: './console maintenance:mode --off' args: chdir: "{{ nextcloud_webroot }}" - name: Update nextcloud root dir symbolic link become_user: "{{ nextcloud_websrv_user }}" become: true ansible.builtin.file: src: "{{ nextcloud_source }}" dest: "{{ nextcloud_webroot }}/nextcloud" owner: "{{ nextcloud_websrv_user }}" group: "{{ nextcloud_websrv_user }}" state: link follow: false - name: Update nextcloud common app dir symbolic link become_user: "{{ nextcloud_websrv_user }}" become: true ansible.builtin.file: src: "{{ nextcloud_common }}" dest: "{{ nextcloud_webroot }}/common" owner: "{{ nextcloud_websrv_user }}" group: "{{ nextcloud_websrv_user }}" state: link follow: false - name: Start webserver service become: true ansible.builtin.service: name: "{{ nextcloud_websrv }}" state: started - name: Run occ upgrade # noqa : command-instead-of-module become_user: "{{ nextcloud_websrv_user }}" become: true ansible.builtin.command: './console upgrade' args: chdir: "{{ nextcloud_webroot }}" register: nc_upgrade_result - name: Display upgrade result ansible.builtin.debug: var: nc_upgrade_result.stdout_lines - name: Wait for upgrade to complete block: - name: Wait for nextcloud maintenance mode to become false # noqa : command-instead-of-module become_user: "{{ nextcloud_websrv_user }}" become: true ansible.builtin.command: './console status' args: chdir: "{{ nextcloud_webroot }}" register: result until: "'maintenance: false' in result.stdout" retries: 15 delay: 20 rescue: - name: Deactivate maintenance mode manually # noqa : command-instead-of-module become_user: "{{ nextcloud_websrv_user }}" become: true ansible.builtin.command: './console maintenance:mode --off' args: chdir: "{{ nextcloud_webroot }}" register: rescue - name: Display rescue ansible.builtin.debug: var: rescue.stdout_lines - name: Launch post-upgrade cleaning scripts when: "'Nextcloud is already latest version' not in nc_upgrade_result.stdout_lines" block: - name: Launch some occ cleaning command become_user: "{{ nextcloud_websrv_user }}" become: true ansible.builtin.command: "./console { command }}" args: chdir: "{{ nextcloud_webroot }}" loop: - db:add-missing-columns - db:add-missing-indices - db:add-missing-primary-keys - dav:remove-invalid-shares - files:cleanup # - files:scan --all loop_control: loop_var: command register: nc_indices_cmd - name: Display each occ commands result ansible.builtin.debug: msg: "{{ item.stdout_lines }}" loop: "{{ nc_indices_cmd.results }}" loop_control: label: "{{ item.command }}"