--- - name: create nextcloud directory file: path: "{{ item }}" state: directory owner: "{{ nextcloud_user }}" group: "{{ nextcloud_group }}" loop: - "{{ nextcloud_directory }}" - "{{ nextcloud_install_directory }}" - "{{ nextcloud_datadir }}" - name: Get current installed nextcloud version stat: path: "{{ nextcloud_directory }}/current" register: nc_current - name: Download and extract the nextcloud release become: yes become_user: "{{ nextcloud_user }}" unarchive: src: "{{ nextcloud_download }}" dest: "{{ nextcloud_install_directory }}" remote_src: yes extra_opts: - "--strip-components=1" when: not nc_current.stat.lnk_target is defined or nc_current.stat.lnk_target != nextcloud_install_directory - name: Generate nextcloud config file become: yes become_user: "{{ nextcloud_user }}" command: | php occ maintenance:install --no-interaction --database {{ nextcloud_db_type }} --database-host "{{ nextcloud_db_host }}" \ --database-name {{ nextcloud_db }} \ --database-user {{ nextcloud_db_user }} \ --database-pass {{ nextcloud_db_password }} \ --admin-user {{ nextcloud_admin }} \ --admin-pass {{ nextcloud_admin_password }} \ --data-dir {{ nextcloud_datadir }} \ args: chdir: "{{ nextcloud_install_directory }}" creates: "{{ nextcloud_install_directory }}/config/config.php" when: not nc_current.stat.lnk_target is defined - name: Copy old nextcloud config become: yes become_user: "{{ nextcloud_user }}" copy: src: "{{ nextcloud_directory }}/current/config/config.php" dest: "{{ nextcloud_install_directory }}/config/config.php" owner: "{{ nextcloud_user }}" group: "{{ nextcloud_group }}" remote_src: yes when: nc_current.stat.lnk_target is defined and nc_current.stat.lnk_target != nextcloud_install_directory - name: Configure nextcloud become: yes become_user: "{{ nextcloud_user }}" command: "php occ config:system:set {{ item.key }} --value {{ item.value }}" args: chdir: "{{ nextcloud_install_directory }}" loop: "{{ nextcloud_config }}" # TODO: install apps - name: Put nextcloud into maintenance mode become: yes become_user: "{{ nextcloud_user }}" command: "php occ maintenance:mode --on" args: chdir: "{{ nextcloud_directory }}/current" ignore_errors: yes when: nc_current.stat.lnk_target is defined and nc_current.stat.lnk_target != nextcloud_install_directory - name: Symlink current nextcloud version become: yes become_user: "{{ nextcloud_user }}" file: src: "{{ nextcloud_install_directory }}" dest: "{{ nextcloud_directory }}/current" owner: "{{ nextcloud_user }}" group: "{{ nextcloud_group }}" state: link - name: Run nextcloud upgrade command become: yes become_user: "{{ nextcloud_user }}" command: "php occ upgrade --no-interaction" args: chdir: "{{ nextcloud_directory }}/current" ignore_errors: yes when: nc_current.stat.lnk_target is defined and nc_current.stat.lnk_target != nextcloud_install_directory - name: Take nextcloud out of maintenance mode become: yes become_user: "{{ nextcloud_user }}" command: "php occ maintenance:mode --off" args: chdir: "{{ nextcloud_directory }}/current" ignore_errors: yes