--- # flush handlers to restart code-server before install extensions - name: Flush handlers befor continue meta: flush_handlers - name: Check nextcloud directory stat: path: '{{ nextcloud_dir }}' register: nextcloud_dir_stat - name: Install Nextcloud when: not nextcloud_dir_stat.stat.exists block: - name: Create nextcloud directory file: path: "{{ nextcloud_dir }}" state: directory owner: "{{ webserver_user }}" group: "{{ webserver_group }}" mode: "0770" force: false - name: Download nextcloud latest from nextcloud.com get_url: url: "https://download.nextcloud.com/server/releases/latest.tar.bz2" dest: "/var/tmp/nextcloud.tar.gz" mode: "0644" register: nextcloud_download_archive until: nextcloud_download_archive is succeeded retries: 3 delay: 5 - name: Unpack nextcloud unarchive: remote_src: true src: "/var/tmp/nextcloud.tar.gz" dest: "{{ nextcloud_dir }}" owner: "{{ webserver_user }}" group: "{{ webserver_group }}" extra_opts: - --strip-components=1 - name: Change directory ownership to webserver user file: path: "{{ item }}" state: directory recurse: true owner: "{{ webserver_user }}" group: "{{ webserver_group }}" loop: - "{{ nextcloud_dir }}" - "{{ nextcloud_cache_dir }}" - "{{ nextcloud_log_dir }}" - name: Copy default config template: src: "nextcloud.config.json.j2" dest: /tmp/nextcloud.config.json owner: "{{ webserver_user }}" mode: "0600" - name: Ensure nextcloud installation is finished become: true become_user: "{{ webserver_user }}" command: > php occ maintenance:install --database "pgsql" --database-host "{{ nextcloud_db_host }}:{{ nextcloud_db_port }}" --database-name "{{ nextcloud_db_name }}" --database-user "{{ nextcloud_db_user }}" --database-pass "{{ vault_nextcloud_db_pass }}" --admin-user "{{ nexcloud_admin_user }}" --admin-pass "{{ vault_nexcloud_admin_pass }}" --data-dir "{{ nextcloud_data_dir }}" args: chdir: "{{ nextcloud_dir }}" changed_when: true - name: Set default config become: true become_user: "{{ webserver_user }}" command: cmd: php occ config:import /tmp/nextcloud.config.json args: chdir: "{{ nextcloud_dir }}" register: nextcloud_occ_config_import_output changed_when: nextcloud_occ_config_import_output.rc != 0 - name: Update Nextcloud when: nextcloud_updater block: - name: Run nextcloud's updater.phar in non-interactive way become: true become_user: "{{ webserver_user }}" command: cmd: 'php updater/updater.phar --no-interaction' args: chdir: "{{ nextcloud_dir }}" register: nextcloud_update_result changed_when: "'Start update' in nextcloud_update_result.stdout" - name: Update result debug: msg: "{{ nextcloud_update_result.stdout_lines }}" when: nextcloud_update_result.changed # noqa: no-handler - name: DB tuning after update become: true become_user: "{{ webserver_user }}" command: cmd: php occ {{ item }} args: chdir: "{{ nextcloud_dir }}" loop: - db:add-missing-indices - db:convert-filecache-bigint - integrity:check-core register: nextcloud_occ_update_tuning_output changed_when: nextcloud_occ_update_tuning_output.rc != 0 when: nextcloud_update_result.changed # noqa: no-handler