ajout playbook creation site
[lhc/ansible.git] / tasks / restore_to_vm.yml
1 ---
2 # chown -R www-data: /opt/nuage/backups/clavette-gre
3 # sudo -u postgres psql
4 # DROP DATABASE nextcloud;
5 # CREATE DATABASE nextcloud WITH OWNER=php_mig_nuage;
6 # GRANT ALL ON SCHEMA public TO php_mig_nuage WITH GRANT OPTION;
7 # GRANT USAGE,CREATE ON SCHEMA public TO php_mig_nuage;
8 # GRANT SELECT ON TABLE pg_namespace TO php_mig_nuage;
9 # GRANT SELECT ON TABLE pg_collation TO php_mig_nuage;
10 # GRANT SELECT ON TABLE pg_index TO php_mig_nuage;
11 # GRANT SELECT ON TABLE pg_attrdef TO php_mig_nuage;
12 # GRANT SELECT ON TABLE pg_description TO php_mig_nuage;
13 # GRANT SELECT ON TABLE pg_settings TO php_mig_nuage;
14 # GRANT SELECT ON pg_database TO php_mig_nuage;
15 # exit
16 # sudo -u php_mig_nuage pg_restore -F c -Oxc --if-exists -d nextcloud /opt/nuage/backups/clavette-gre/dump.pgc
17
18
19 - name: Clean nextcloud restore dir content
20 become_user: "{{ nextcloud_websrv_user }}"
21 become: true
22 ansible.builtin.file:
23 path: "{{ item }}"
24 state: absent
25 loop:
26 - "{{ nextcloud_tmp_path }}"
27 - "{{ nextcloud_webroot }}/data"
28
29 - name: Recreate nextcloud restore dir # necessite le paquet acl installé
30 become_user: "{{ nextcloud_websrv_user }}"
31 become: true
32 ansible.builtin.file:
33 path: "{{ item }}"
34 state: directory
35 loop:
36 - "{{ nextcloud_tmp_path }}"
37
38 - name: Copy files from ansible controller to vm host
39 become_user: "{{ nextcloud_websrv_user }}"
40 become: true
41 ansible.builtin.copy:
42 src: "{{ nextcloud_tmp_path }}/"
43 dest: "{{ nextcloud_tmp_path }}/"
44
45 - name: Add read permissions to data backups files
46 become: true
47 become_user: root
48 ansible.builtin.file:
49 path: "{{ nextcloud_backup_path }}"
50 owner: "{{ nextcloud_websrv_user }}"
51 group: "{{ nextcloud_websrv_user }}"
52 state: directory
53 recurse: true
54 mode: '755' # or 'u=rw,g=r,o=r'
55
56 - name: Créer un lien symbolique vers le dossier data backups
57 become_user: "{{ nextcloud_websrv_user }}"
58 become: true
59 ansible.builtin.file:
60 src: "{{ nextcloud_backup_path }}/data"
61 dest: "{{ nextcloud_webroot }}/data"
62 owner: "{{ nextcloud_websrv_user }}"
63 group: "{{ nextcloud_websrv_user }}"
64 state: link
65 follow: false
66
67 - name: Stop webserver service
68 become: true
69 become_user: root
70 ansible.builtin.service:
71 name: "{{ nextcloud_websrv }}"
72 state: stopped
73
74 - name: "[PostgreSQL] - {{ nextcloud_websrv_user }} role is created."
75 become_user: postgres
76 become: true
77 community.postgresql.postgresql_user:
78 name: "{{ nextcloud_websrv_user }}"
79 state: present
80 role_attr_flags: CREATEDB
81
82 - name: "[PostgreSQL] - {{ nextcloud_db_name }} database is created."
83 become_user: postgres
84 become: true
85 community.postgresql.postgresql_db:
86 name: "{{ nextcloud_db_name }}"
87 state: "{{ item }}"
88 owner: "{{ nextcloud_websrv_user }}"
89 target: "{{ nextcloud_tmp_path }}/dump.pgc"
90 target_opts: "-F c -Oxc --if-exists"
91 loop:
92 - absent
93 - present
94 - restore
95
96 # - name: Restore psql dump # noqa : command-instead-of-module
97 # become: true
98 # become_user: postgres
99 # ansible.builtin.command: "pg_restore -F c -Oxc --if-exists -d {{ nextcloud_db_name }} {{ nextcloud_tmp_path }}/dump.pgc"
100
101 - name: Create vm nextcloud config
102 become_user: "{{ nextcloud_websrv_user }}"
103 become: true
104 ansible.builtin.template:
105 src: templates/vm_config_template.j2
106 dest: "{{ nextcloud_webroot }}/config/vm.config.php"
107 owner: "{{ nextcloud_websrv_user }}"
108 group: "{{ nextcloud_websrv_user }}"
109 mode: '640' # or u=rwx,g=r,o=
110
111 - name: Create sigle nextcloud config
112 become_user: "{{ nextcloud_websrv_user }}"
113 become: true
114 ansible.builtin.template:
115 src: templates/sigle_config_template.j2
116 dest: "{{ nextcloud_webroot }}/config/sigle.config.php"
117 owner: "{{ nextcloud_websrv_user }}"
118 group: "{{ nextcloud_websrv_user }}"
119 mode: '640' # or u=rwx,g=r,o=
120
121 - name: Update data fingerprint post db restore # noqa : command-instead-of-module
122 become_user: "{{ nextcloud_websrv_user }}"
123 become: true
124 ansible.builtin.command: './console maintenance:data-fingerprint'
125 args:
126 chdir: "{{ nextcloud_webroot }}"
127
128 - name: Deactivate nextcloud maintenance mode # noqa : command-instead-of-module
129 become_user: "{{ nextcloud_websrv_user }}"
130 become: true
131 ansible.builtin.command: './console maintenance:mode --off'
132 args:
133 chdir: "{{ nextcloud_webroot }}"
134
135 - name: Update nextcloud root dir symbolic link
136 become_user: "{{ nextcloud_websrv_user }}"
137 become: true
138 ansible.builtin.file:
139 src: "{{ nextcloud_source }}"
140 dest: "{{ nextcloud_webroot }}/nextcloud"
141 owner: "{{ nextcloud_websrv_user }}"
142 group: "{{ nextcloud_websrv_user }}"
143 state: link
144 follow: false
145
146 - name: Update nextcloud common app dir symbolic link
147 become_user: "{{ nextcloud_websrv_user }}"
148 become: true
149 ansible.builtin.file:
150 src: "{{ nextcloud_common }}"
151 dest: "{{ nextcloud_webroot }}/common"
152 owner: "{{ nextcloud_websrv_user }}"
153 group: "{{ nextcloud_websrv_user }}"
154 state: link
155 follow: false
156
157 - name: Start webserver service
158 become: true
159 ansible.builtin.service:
160 name: "{{ nextcloud_websrv }}"
161 state: started
162
163 - name: Run occ upgrade # noqa : command-instead-of-module
164 become_user: "{{ nextcloud_websrv_user }}"
165 become: true
166 ansible.builtin.command: './console upgrade'
167 args:
168 chdir: "{{ nextcloud_webroot }}"
169 register: nc_upgrade_result
170
171 - name: Display upgrade result
172 ansible.builtin.debug:
173 var: nc_upgrade_result.stdout_lines
174
175 - name: Wait for upgrade to complete
176 block:
177
178 - name: Wait for nextcloud maintenance mode to become false # noqa : command-instead-of-module
179 become_user: "{{ nextcloud_websrv_user }}"
180 become: true
181 ansible.builtin.command: './console status'
182 args:
183 chdir: "{{ nextcloud_webroot }}"
184 register: result
185 until: "'maintenance: false' in result.stdout"
186 retries: 15
187 delay: 20
188
189 rescue:
190
191 - name: Deactivate maintenance mode manually # noqa : command-instead-of-module
192 become_user: "{{ nextcloud_websrv_user }}"
193 become: true
194 ansible.builtin.command: './console maintenance:mode --off'
195 args:
196 chdir: "{{ nextcloud_webroot }}"
197 register: rescue
198
199 - name: Display rescue
200 ansible.builtin.debug:
201 var: rescue.stdout_lines
202
203 - name: Launch post-upgrade cleaning scripts
204 when: "'Nextcloud is already latest version' not in nc_upgrade_result.stdout_lines"
205 block:
206
207 - name: Launch some occ cleaning command # noqa : command-instead-of-module
208 become_user: "{{ nextcloud_websrv_user }}"
209 become: true
210 ansible.builtin.command: "./console { command }}"
211 args:
212 chdir: "{{ nextcloud_webroot }}"
213 loop:
214 - db:add-missing-columns
215 - db:add-missing-indices
216 - db:add-missing-primary-keys
217 - dav:remove-invalid-shares
218 - files:cleanup
219 # - files:scan --all
220 loop_control:
221 loop_var: command
222 register: nc_indices_cmd
223
224 - name: Display each occ commands result
225 ansible.builtin.debug:
226 msg: "{{ item.stdout_lines }}"
227 loop: "{{ nc_indices_cmd.results }}"
228 loop_control:
229 label: "{{ item.command }}"