Files
Ansible/roles/nextcloud/tasks/nextcloud.yml

105 lines
3.1 KiB
YAML

---
# 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
block:
- name: Create nextcloud directory
file:
path: "{{ nextcloud_dir }}"
state: directory
owner: "{{ webserver_user }}"
group: "{{ webserver_group }}"
mode: 0775
force: false
- name: unpack nextcloud latest from nextcloud.com
unarchive:
remote_src: true
src: "https://download.nextcloud.com/server/releases/latest.tar.bz2"
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
chdir: "{{ nextcloud_dir }}"
when: not nextcloud_dir_stat.stat.exists
- name: Update Nextcloud
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'
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
- name: DB tuning after update
become: true
become_user: "{{ webserver_user }}"
command:
cmd: php occ {{ item }}
chdir: "{{ nextcloud_dir }}"
loop:
- db:add-missing-indices
- db:convert-filecache-bigint
- integrity:check-core
when: nextcloud_update_result.changed
when: nextcloud_updater