initial ansible code
This commit is contained in:
104
roles/nextcloud/tasks/nextcloud.yml
Normal file
104
roles/nextcloud/tasks/nextcloud.yml
Normal file
@@ -0,0 +1,104 @@
|
||||
---
|
||||
# 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: php occ config:import /tmp/nextcloud.config.json
|
||||
args:
|
||||
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: '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
|
||||
|
||||
- name: DB tuning after update
|
||||
become: true
|
||||
become_user: "{{ webserver_user }}"
|
||||
command: php occ {{ item }}
|
||||
args:
|
||||
chdir: "{{ nextcloud_dir }}"
|
||||
loop:
|
||||
- db:add-missing-indices
|
||||
- db:convert-filecache-bigint
|
||||
- integrity:check-core
|
||||
when: nextcloud_update_result.changed
|
||||
when: nextcloud_updater
|
||||
Reference in New Issue
Block a user