114 lines
3.3 KiB
YAML
114 lines
3.3 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: "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"
|
|
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
|
|
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
|