---
-- name: clean nextcloud restore dir content
- ansible.builtin.file:
- path: "{{ nextcloud_tmp_path }}"
- state: absent
+# - name: Clean nextcloud restore dir content
+# become_user: "{{ nextcloud_websrv_user }}"
+# become: true
+# ansible.builtin.file:
+# path: "{{ item }}"
+# state: absent
+# loop:
+# - "{{ nextcloud_tmp_path }}"
+# - "{{ nextcloud_webroot }}/data"
-- name: recreate nextcloud restore dir
+- name: Recreate nextcloud restore dir # necessite le paquet acl installé
+ become_user: "{{ nextcloud_websrv_user }}"
+ become: true
ansible.builtin.file:
- path: "{{ nextcloud_tmp_path }}"
- state: present
+ path: "{{ item }}"
+ state: directory
+ loop:
+ - "{{ nextcloud_tmp_path }}"
+ - "{{ nextcloud_webroot }}/data"
-- name: Copy the file from ansible controller to vm host
- copy:
- src: "{{ item }}"
- dest: "{{ nextcloud_data_path }}"
- loop:
- - "{{ nextcloud_tmp_path }}/dump.sql"
- - "{{ nextcloud_tmp_path }}/data.tar.gz"
- - "{{ nextcloud_tmp_path }}/config.php"
+# - name: Copy files from ansible controller to vm host
+# become_user: "{{ nextcloud_websrv_user }}"
+# become: true
+# ansible.builtin.copy:
+# src: "{{ nextcloud_tmp_path }}/"
+# dest: "{{ nextcloud_tmp_path }}/"
-- name: Extract nc data archive
- ansible.builtin.unarchive:
- src: "{{ nextcloud_data_tmp }}"
- dest: "{{ nextcloud_data_path }}"
+# - name: Extract nc data archive
+# become_user: "{{ nextcloud_websrv_user }}"
+# become: true
+# ansible.builtin.unarchive:
+# src: "{{ nextcloud_tmp_path }}/data.tar.gz"
+# dest: "{{ nextcloud_webroot }}/data"
-- name: stop webserver service
+- name: Stop webserver service
become: true
become_user: root
ansible.builtin.service:
name: "{{ nextcloud_websrv }}"
state: stopped
-- name: restore psql dump
+- name: "[PostgreSQL] - {{ nextcloud_websrv_user }} role is created."
+ become_user: postgres
become: true
+ community.postgresql.postgresql_user:
+ name: "{{ nextcloud_websrv_user }}"
+ state: present
+ role_attr_flags: CREATEDB
+
+- name: "[PostgreSQL] - {{ nextcloud_db_name }} database is created."
+ become_user: postgres
+ become: true
+ community.postgresql.postgresql_db:
+ name: "{{ nextcloud_db_name }}"
+ state: "{{ item }}"
+ owner: "{{ nextcloud_websrv_user }}"
+ target: "{{ nextcloud_tmp_path }}/dump.sql"
+ loop:
+ - absent
+ - present
+ - restore
+
+# - name: Restore psql dump # noqa : command-instead-of-module
+# become: true
+# become_user: postgres
+# ansible.builtin.command: "pg_restore -c -F c -O -x -d {{ nextcloud_db_name }} {{ nextcloud_tmp_path }}/dump.pgc"
+
+- name: Update data fingerprint post db restore # noqa : command-instead-of-module
become_user: "{{ nextcloud_websrv_user }}"
- command: "pg_restore -F c -O -d {{ nextcloud_db_name }} {{ nextcloud_tmp_path }}/dump.sql"
+ become: true
+ ansible.builtin.command: './console maintenance:data-fingerprint'
+ args:
+ chdir: "{{ nextcloud_webroot }}"
-- name: copy config.php over from old instance
+- name: create nextcloud config
become_user: "{{ nextcloud_websrv_user }}"
become: true
- ansible.builtin.copy:
- src: "{{ nextcloud_data_tmp }}/config/config.php"
+ ansible.builtin.template:
+ src: templates/config_template.j2
dest: "{{ nextcloud_webroot }}/config/config.php"
- remote_src: yes #because the config file is already in the nextcloud_tmp_path
owner: "{{ nextcloud_websrv_user }}"
group: "{{ nextcloud_websrv_user }}"
- mode: '640' #or u=rwx,g=r,o=
+ mode: '640' # or u=rwx,g=r,o=
+
+- name: Deactivate nextcloud maintenance mode # noqa : command-instead-of-module
+ become_user: "{{ nextcloud_websrv_user }}"
+ become: true
+ ansible.builtin.command: './console maintenance:mode --off'
+ args:
+ chdir: "{{ nextcloud_webroot }}"
-- name: update nextcloud root dir symbolic link
+- name: Update nextcloud root dir symbolic link
+ become_user: "{{ nextcloud_websrv_user }}"
become: true
ansible.builtin.file:
src: "{{ nextcloud_source }}"
dest: "{{ nextcloud_webroot }}/nextcloud"
- owner: nextcloud
- group: nextcloud
+ owner: "{{ nextcloud_websrv_user }}"
+ group: "{{ nextcloud_websrv_user }}"
state: link
follow: false
-- name: update nextcloud common app dir symbolic link
+- name: Update nextcloud common app dir symbolic link
+ become_user: "{{ nextcloud_websrv_user }}"
become: true
ansible.builtin.file:
src: "{{ nextcloud_common }}"
dest: "{{ nextcloud_webroot }}/common"
- owner: nextcloud
- group: nextcloud
+ owner: "{{ nextcloud_websrv_user }}"
+ group: "{{ nextcloud_websrv_user }}"
state: link
follow: false
-- name: deactivate nextcloud maintenance mode
- become_user: "{{ nextcloud_websrv_user }}"
- become: true
- command: './console maintenance:mode --off'
- args:
- chdir: "{{ nextcloud_webroot }}"
-
-- name: start webserver service
+- name: Start webserver service
become: true
ansible.builtin.service:
name: "{{ nextcloud_websrv }}"
state: started
-- name: Run occ upgrade
+- name: Run occ upgrade # noqa : command-instead-of-module
become_user: "{{ nextcloud_websrv_user }}"
become: true
- command: './console upgrade'
+ ansible.builtin.command: './console upgrade'
args:
chdir: "{{ nextcloud_webroot }}"
register: nc_upgrade_result
-- name: display upgrade result
- debug:
+- name: Display upgrade result
+ ansible.builtin.debug:
var: nc_upgrade_result.stdout_lines
-- name: wait for upgrade to complete
+- name: Wait for upgrade to complete
block:
- - name: wait for nextcloud maintenance mode to become false
- become_user: "{{ nextcloud_websrv_user }}"
- become: true
- command: php occ status
- args:
- chdir: "{{ nextcloud_webroot }}"
- register: result
- until: "'maintenance: false' in result.stdout"
- retries: 15
- delay: 20
+
+ - name: Wait for nextcloud maintenance mode to become false # noqa : command-instead-of-module
+ become_user: "{{ nextcloud_websrv_user }}"
+ become: true
+ ansible.builtin.command: './console status'
+ args:
+ chdir: "{{ nextcloud_webroot }}"
+ register: result
+ until: "'maintenance: false' in result.stdout"
+ retries: 15
+ delay: 20
+
rescue:
- - name: deactivate maintenance mode manually
- become_user: "{{ nextcloud_websrv_user }}"
- become: true
- command: php occ maintenance:mode --off
- register: rescue
- - name: display rescue
- debug:
- var: rescue.stdout_lines
-
-- name: launch post-upgrade cleaning scripts
+
+ - name: Deactivate maintenance mode manually # noqa : command-instead-of-module
+ become_user: "{{ nextcloud_websrv_user }}"
+ become: true
+ ansible.builtin.command: './console maintenance:mode --off'
+ args:
+ chdir: "{{ nextcloud_webroot }}"
+ register: rescue
+
+ - name: Display rescue
+ ansible.builtin.debug:
+ var: rescue.stdout_lines
+
+- name: Launch post-upgrade cleaning scripts
+ when: "'Nextcloud is already latest version' not in nc_upgrade_result.stdout_lines"
block:
- - name: launch some occ cleaning command
- become_user: "{{ nextcloud_websrv_user }}"
- become: true
- command: "php occ {{ command }}"
- args:
- chdir: "{{ nextcloud_webroot }}"
- loop:
- - db:add-missing-columns
- - db:add-missing-indices
- - db:add-missing-primary-keys
- - dav:remove-invalid-shares
- - files:cleanup
-# - files:scan --all
- loop_control:
- loop_var: command
- register: nc_indices_cmd
-
- - name: display each occ commands result
- debug:
- msg: "{{ item.stdout_lines }}"
- loop: "{{ nc_indices_cmd.results }}"
- loop_control:
- label: "{{ item.command }}"
- when: "'Nextcloud is already latest version' not in nc_upgrade_result.stdout_lines"
\ No newline at end of file
+
+ - name: Launch some occ cleaning command
+ become_user: "{{ nextcloud_websrv_user }}"
+ become: true
+ ansible.builtin.command: "./console { command }}"
+ args:
+ chdir: "{{ nextcloud_webroot }}"
+ loop:
+ - db:add-missing-columns
+ - db:add-missing-indices
+ - db:add-missing-primary-keys
+ - dav:remove-invalid-shares
+ - files:cleanup
+ # - files:scan --all
+ loop_control:
+ loop_var: command
+ register: nc_indices_cmd
+
+ - name: Display each occ commands result
+ ansible.builtin.debug:
+ msg: "{{ item.stdout_lines }}"
+ loop: "{{ nc_indices_cmd.results }}"
+ loop_control:
+ label: "{{ item.command }}"