--- # These tasks install Nextcloud if it is not installed on the system already. # They should run only once. - name: Install unzip package: name: unzip state: present when: download_file_type == '.zip' - name: Install dependencies package: name: "{{ package }}" loop: "{{ packages }}" loop_control: loop_var: package vars: packages: - imagemagick - name: Check if nextcloud is already installed stat: path: "{{ nextcloud_installation_dir }}/updater/updater.phar" register: _result - name: Download nextcloud unarchive: src: "{{ nextcloud_download_url }}" dest: "{{ nextcloud_installation_parent_dir }}" remote_src: true owner: "{{ nextcloud_file_owner }}" group: "{{ nextcloud_file_owner }}" register: _result when: not _result.stat.exists - name: Install nextcloud block: # When extracting the downloaded nextcloud archive, the files are placed # under a nextcloud folder. Here, we rename this folder if the user has # specified a different folder. - name: Move nextcloud folder command: >- mv "{{ nextcloud_installation_parent_dir }}/nextcloud" "{{ nextcloud_installation_dir }}" when: - _result is not skipped - nextcloud_installation_dir | basename != "nextcloud" - name: Create nextcloud data folder file: path: "{{ nextcloud_data_dir }}" state: directory owner: "{{ nextcloud_file_owner }}" group: "{{ nextcloud_file_owner }}" mode: 0o750 - name: Install nextcloud command: >- php occ maintenance:install --no-interaction --database "{{ nextcloud_database.backend }}" --database-name "{{ nextcloud_database.name }}" --database-user "{{ nextcloud_database.user }}" --database-pass "{{ nextcloud_database.pass }}" --database-host "{{ nextcloud_database.host }}" --database-port "{{ nextcloud_database.port }}" --database-table-prefix "{{ nextcloud_database.prefix }}" --admin-user "{{ nextcloud_admin_user }}" --admin-pass "{{ nextcloud_admin_pass }}" --data-dir "{{ nextcloud_data_dir }}" args: chdir: "{{ nextcloud_installation_dir }}" creates: "{{ nextcloud_installation_dir }}/config/config.php" become: true become_user: "{{ nextcloud_file_owner }}" notify: nextcloud set file permissions when: _result is not skipped