ajout du playbook upgrade_nuage_instance
[lhc/ansible.git] / tasks / restore_to_vm.yml
1 ---
2 - name: clean nextcloud restore dir content
3 ansible.builtin.file:
4 path: "{{ nextcloud_tmp_path }}"
5 state: absent
6
7 - name: recreate nextcloud restore dir
8 ansible.builtin.file:
9 path: "{{ nextcloud_tmp_path }}"
10 state: present
11
12 - name: Copy the file from ansible controller to vm host
13 copy:
14 src: "{{ item }}"
15 dest: "{{ nextcloud_data_path }}"
16 loop:
17 - "{{ nextcloud_tmp_path }}/dump.sql"
18 - "{{ nextcloud_tmp_path }}/data.tgz"
19 - "{{ nextcloud_tmp_path }}/config.php"
20
21 - name: Extract nc data archive
22 ansible.builtin.unarchive:
23 src: "{{ nextcloud_data_tmp }}"
24 dest: "{{ nextcloud_data_path }}"
25
26 - name: stop webserver service
27 become: true
28 become_user: root
29 ansible.builtin.service:
30 name: "{{ nextcloud_websrv }}"
31 state: stopped
32
33 - name: restore psql dump
34 become: true
35 become_user: "{{ nextcloud_websrv_user }}"
36 command: "pg_restore -F c -O -d {{ nextcloud_db_name }} {{ nextcloud_tmp_path }}/dump.sql"
37
38 - name: copy config.php over from old instance
39 become_user: "{{ nextcloud_websrv_user }}"
40 become: true
41 ansible.builtin.copy:
42 src: "{{ nextcloud_data_tmp }}/config/config.php"
43 dest: "{{ nextcloud_webroot }}/config/config.php"
44 remote_src: yes #because the config file is already in the nextcloud_tmp_path
45 owner: "{{ nextcloud_websrv_user }}"
46 group: "{{ nextcloud_websrv_user }}"
47 mode: '640' #or u=rwx,g=r,o=
48
49 - name: update nextcloud root dir symbolic link
50 become_user: "{{ nextcloud_websrv_user }}"
51 become: true
52 ansible.builtin.file:
53 src: "{{ nextcloud_files_path }}/nextcloud-{{ nextcloud_version }}"
54 dest: "{{ nextcloud_webroot }}/nextcloud"
55 owner: "{{ nextcloud_websrv_user }}"
56 group: "{{ nextcloud_websrv_user }}"
57 state: link
58
59 - name: deactivate nextcloud maintenance mode
60 become_user: "{{ nextcloud_websrv_user }}"
61 become: true
62 command: './console maintenance:mode --off'
63 args:
64 chdir: "{{ nextcloud_webroot }}"
65
66 - name: Run occ upgrade
67 become_user: "{{ nextcloud_websrv_user }}"
68 become: true
69 command: './console upgrade'
70 args:
71 chdir: "{{ nextcloud_webroot }}"
72 register: nc_upgrade_result
73
74 - name: display upgrade result
75 debug:
76 var: nc_upgrade_result.stdout_lines
77
78 - name: wait for upgrade to complete
79 block:
80 - name: wait for nextcloud maintenance mode to become false
81 become_user: "{{ nextcloud_websrv_user }}"
82 become: true
83 command: php occ status
84 args:
85 chdir: "{{ nextcloud_webroot }}"
86 register: result
87 until: "'maintenance: false' in result.stdout"
88 retries: 15
89 delay: 20
90 rescue:
91 - name: deactivate maintenance mode manually
92 become_user: "{{ nextcloud_websrv_user }}"
93 become: true
94 command: php occ maintenance:mode --off
95 register: rescue
96 - name: display rescue
97 debug:
98 var: rescue.stdout_lines
99
100 - name: launch post-upgrade cleaning scripts
101 block:
102 - name: launch some occ cleaning command
103 become_user: "{{ nextcloud_websrv_user }}"
104 become: true
105 command: "php occ {{ command }}"
106 args:
107 chdir: "{{ nextcloud_webroot }}"
108 loop:
109 - db:add-missing-columns
110 - db:add-missing-indices
111 - db:add-missing-primary-keys
112 - dav:remove-invalid-shares
113 - files:cleanup
114 # - files:scan --all
115 loop_control:
116 loop_var: command
117 register: nc_indices_cmd
118
119 - name: display each occ commands result
120 debug:
121 msg: "{{ item.stdout_lines }}"
122 loop: "{{ nc_indices_cmd.results }}"
123 loop_control:
124 label: "{{ item.command }}"
125 when: "'Nextcloud is already latest version' not in nc_upgrade_result.stdout_lines"
126
127 - name: start webserver service
128 become: true
129 become_user: root
130 ansible.builtin.service:
131 name: "{{ nextcloud_websrv }}"
132 state: started
133 no_log: true