---
-- name: clean nextcloud restore dir content
+# chown -R www-data: /opt/nuage/backups/clavette-gre
+# sudo -u postgres psql
+# DROP DATABASE nextcloud;
+# CREATE DATABASE nextcloud WITH OWNER=php_mig_nuage;
+# GRANT ALL ON SCHEMA public TO php_mig_nuage WITH GRANT OPTION;
+# GRANT USAGE,CREATE ON SCHEMA public TO php_mig_nuage;
+# GRANT SELECT ON TABLE pg_namespace TO php_mig_nuage;
+# GRANT SELECT ON TABLE pg_collation TO php_mig_nuage;
+# GRANT SELECT ON TABLE pg_index TO php_mig_nuage;
+# GRANT SELECT ON TABLE pg_attrdef TO php_mig_nuage;
+# GRANT SELECT ON TABLE pg_description TO php_mig_nuage;
+# GRANT SELECT ON TABLE pg_settings TO php_mig_nuage;
+# GRANT SELECT ON pg_database TO php_mig_nuage;
+# exit
+# sudo -u php_mig_nuage pg_restore -F c -Oxc --if-exists -d nextcloud /opt/nuage/backups/clavette-gre/dump.pgc
+
+
+- name: Clean nextcloud restore dir content
+ become_user: "{{ nextcloud_websrv_user }}"
+ become: true
ansible.builtin.file:
- path: "{{ nextcloud_tmp_path }}"
+ 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
-
-- name: Copy the file from ansible controller to vm host
- copy:
- src: "{{ item }}"
- dest: "{{ nextcloud_data_path }}"
+ path: "{{ item }}"
+ state: directory
loop:
- - "{{ nextcloud_tmp_path }}/dump.sql"
- - "{{ nextcloud_tmp_path }}/data.tgz"
- - "{{ nextcloud_tmp_path }}/config.php"
+ - "{{ nextcloud_tmp_path }}"
-- name: Extract nc data archive
- ansible.builtin.unarchive:
- src: "{{ nextcloud_data_tmp }}"
- dest: "{{ nextcloud_data_path }}"
+- 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: stop webserver service
+- name: Add read permissions to data backups files
+ become: true
+ become_user: root
+ ansible.builtin.file:
+ path: "{{ nextcloud_backup_path }}"
+ owner: "{{ nextcloud_websrv_user }}"
+ group: "{{ nextcloud_websrv_user }}"
+ state: directory
+ recurse: true
+ mode: '755' # or 'u=rw,g=r,o=r'
+
+- name: Créer un lien symbolique vers le dossier data backups
+ become_user: "{{ nextcloud_websrv_user }}"
+ become: true
+ ansible.builtin.file:
+ src: "{{ nextcloud_backup_path }}/data"
+ dest: "{{ nextcloud_webroot }}/data"
+ owner: "{{ nextcloud_websrv_user }}"
+ group: "{{ nextcloud_websrv_user }}"
+ state: link
+ follow: false
+
+- 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.pgc"
+ target_opts: "-F c -Oxc --if-exists"
+ loop:
+ - absent
+ - present
+ - restore
+
+# - name: Restore psql dump # noqa : command-instead-of-module
+# become: true
+# become_user: postgres
+# ansible.builtin.command: "pg_restore -F c -Oxc --if-exists -d {{ nextcloud_db_name }} {{ nextcloud_tmp_path }}/dump.pgc"
+
+- name: Create vm nextcloud config
become_user: "{{ nextcloud_websrv_user }}"
- command: "pg_restore -F c -O -d {{ nextcloud_db_name }} {{ nextcloud_tmp_path }}/dump.sql"
+ become: true
+ ansible.builtin.template:
+ src: templates/vm_config_template.j2
+ dest: "{{ nextcloud_webroot }}/config/vm.config.php"
+ owner: "{{ nextcloud_websrv_user }}"
+ group: "{{ nextcloud_websrv_user }}"
+ mode: '640' # or u=rwx,g=r,o=
-- name: copy config.php over from old instance
+- name: Create sigle nextcloud config
become_user: "{{ nextcloud_websrv_user }}"
become: true
- ansible.builtin.copy:
- src: "{{ nextcloud_data_tmp }}/config/config.php"
- dest: "{{ nextcloud_webroot }}/config/config.php"
- remote_src: yes #because the config file is already in the nextcloud_tmp_path
+ ansible.builtin.template:
+ src: templates/sigle_config_template.j2
+ dest: "{{ nextcloud_webroot }}/config/sigle.config.php"
owner: "{{ nextcloud_websrv_user }}"
group: "{{ nextcloud_websrv_user }}"
- mode: 0640
+ mode: '640' # or u=rwx,g=r,o=
+
+- name: Update data fingerprint post db restore # noqa : command-instead-of-module
+ become_user: "{{ nextcloud_websrv_user }}"
+ become: true
+ ansible.builtin.command: './console maintenance:data-fingerprint'
+ args:
+ chdir: "{{ nextcloud_webroot }}"
+
+- 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_files_path }}/nextcloud-{{ nextcloud_version }}"
+ src: "{{ nextcloud_source }}"
dest: "{{ nextcloud_webroot }}/nextcloud"
owner: "{{ nextcloud_websrv_user }}"
group: "{{ nextcloud_websrv_user }}"
state: link
+ follow: false
-- name: deactivate nextcloud maintenance mode
+- name: Update nextcloud common app dir symbolic link
become_user: "{{ nextcloud_websrv_user }}"
become: true
- command: './console maintenance:mode --off'
- args:
- chdir: "{{ nextcloud_webroot }}"
+ ansible.builtin.file:
+ src: "{{ nextcloud_common }}"
+ dest: "{{ nextcloud_webroot }}/common"
+ owner: "{{ nextcloud_websrv_user }}"
+ group: "{{ nextcloud_websrv_user }}"
+ state: link
+ follow: false
-- name: Run occ upgrade
+- name: Start webserver service
+ become: true
+ ansible.builtin.service:
+ name: "{{ nextcloud_websrv }}"
+ state: started
+
+- 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
- 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 }}"
+
+ - 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: start webserver service
- become: true
- become_user: root
- ansible.builtin.service:
- name: "{{ nextcloud_websrv }}"
- state: started
- no_log: true
\ No newline at end of file
+ - name: Launch some occ cleaning command # noqa : command-instead-of-module
+ 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 }}"