4998bc2032ca1e21e185cb79c895f9f2e3e0c3f5
[lhc/ansible.git] / tasks / restore_to_vm.yml
1 ---
2 # - name: Clean nextcloud restore dir content
3 # become_user: "{{ nextcloud_websrv_user }}"
4 # become: true
5 # ansible.builtin.file:
6 # path: "{{ item }}"
7 # state: absent
8 # loop:
9 # - "{{ nextcloud_tmp_path }}"
10 # - "{{ nextcloud_webroot }}/data"
11
12 - name: Recreate nextcloud restore dir # necessite le paquet acl installé
13 become_user: "{{ nextcloud_websrv_user }}"
14 become: true
15 ansible.builtin.file:
16 path: "{{ item }}"
17 state: directory
18 loop:
19 - "{{ nextcloud_tmp_path }}"
20 - "{{ nextcloud_webroot }}/data"
21
22 # - name: Copy files from ansible controller to vm host
23 # become_user: "{{ nextcloud_websrv_user }}"
24 # become: true
25 # ansible.builtin.copy:
26 # src: "{{ nextcloud_tmp_path }}/"
27 # dest: "{{ nextcloud_tmp_path }}/"
28
29 # - name: Extract nc data archive
30 # become_user: "{{ nextcloud_websrv_user }}"
31 # become: true
32 # ansible.builtin.unarchive:
33 # src: "{{ nextcloud_tmp_path }}/data.tar.gz"
34 # dest: "{{ nextcloud_webroot }}/data"
35
36 - name: Stop webserver service
37 become: true
38 become_user: root
39 ansible.builtin.service:
40 name: "{{ nextcloud_websrv }}"
41 state: stopped
42
43 - name: "[PostgreSQL] - {{ nextcloud_websrv_user }} role is created."
44 become_user: postgres
45 become: true
46 community.postgresql.postgresql_user:
47 name: "{{ nextcloud_websrv_user }}"
48 state: present
49 role_attr_flags: CREATEDB
50
51 - name: "[PostgreSQL] - {{ nextcloud_db_name }} database is created."
52 become_user: postgres
53 become: true
54 community.postgresql.postgresql_db:
55 name: "{{ nextcloud_db_name }}"
56 state: "{{ item }}"
57 owner: "{{ nextcloud_websrv_user }}"
58 target: "{{ nextcloud_tmp_path }}/dump.sql"
59 loop:
60 - absent
61 - present
62 - restore
63
64 # - name: Restore psql dump # noqa : command-instead-of-module
65 # become: true
66 # become_user: postgres
67 # ansible.builtin.command: "pg_restore -c -F c -O -x -d {{ nextcloud_db_name }} {{ nextcloud_tmp_path }}/dump.pgc"
68
69 - name: Update data fingerprint post db restore # noqa : command-instead-of-module
70 become_user: "{{ nextcloud_websrv_user }}"
71 become: true
72 ansible.builtin.command: './console maintenance:data-fingerprint'
73 args:
74 chdir: "{{ nextcloud_webroot }}"
75
76 - name: create nextcloud config
77 become_user: "{{ nextcloud_websrv_user }}"
78 become: true
79 ansible.builtin.template:
80 src: templates/config_template.j2
81 dest: "{{ nextcloud_webroot }}/config/config.php"
82 owner: "{{ nextcloud_websrv_user }}"
83 group: "{{ nextcloud_websrv_user }}"
84 mode: '640' # or u=rwx,g=r,o=
85
86 - name: Deactivate nextcloud maintenance mode # noqa : command-instead-of-module
87 become_user: "{{ nextcloud_websrv_user }}"
88 become: true
89 ansible.builtin.command: './console maintenance:mode --off'
90 args:
91 chdir: "{{ nextcloud_webroot }}"
92
93 - name: Update nextcloud root dir symbolic link
94 become_user: "{{ nextcloud_websrv_user }}"
95 become: true
96 ansible.builtin.file:
97 src: "{{ nextcloud_source }}"
98 dest: "{{ nextcloud_webroot }}/nextcloud"
99 owner: "{{ nextcloud_websrv_user }}"
100 group: "{{ nextcloud_websrv_user }}"
101 state: link
102 follow: false
103
104 - name: Update nextcloud common app dir symbolic link
105 become_user: "{{ nextcloud_websrv_user }}"
106 become: true
107 ansible.builtin.file:
108 src: "{{ nextcloud_common }}"
109 dest: "{{ nextcloud_webroot }}/common"
110 owner: "{{ nextcloud_websrv_user }}"
111 group: "{{ nextcloud_websrv_user }}"
112 state: link
113 follow: false
114
115 - name: Start webserver service
116 become: true
117 ansible.builtin.service:
118 name: "{{ nextcloud_websrv }}"
119 state: started
120
121 - name: Run occ upgrade # noqa : command-instead-of-module
122 become_user: "{{ nextcloud_websrv_user }}"
123 become: true
124 ansible.builtin.command: './console upgrade'
125 args:
126 chdir: "{{ nextcloud_webroot }}"
127 register: nc_upgrade_result
128
129 - name: Display upgrade result
130 ansible.builtin.debug:
131 var: nc_upgrade_result.stdout_lines
132
133 - name: Wait for upgrade to complete
134 block:
135
136 - name: Wait for nextcloud maintenance mode to become false # noqa : command-instead-of-module
137 become_user: "{{ nextcloud_websrv_user }}"
138 become: true
139 ansible.builtin.command: './console status'
140 args:
141 chdir: "{{ nextcloud_webroot }}"
142 register: result
143 until: "'maintenance: false' in result.stdout"
144 retries: 15
145 delay: 20
146
147 rescue:
148
149 - name: Deactivate maintenance mode manually # noqa : command-instead-of-module
150 become_user: "{{ nextcloud_websrv_user }}"
151 become: true
152 ansible.builtin.command: './console maintenance:mode --off'
153 args:
154 chdir: "{{ nextcloud_webroot }}"
155 register: rescue
156
157 - name: Display rescue
158 ansible.builtin.debug:
159 var: rescue.stdout_lines
160
161 - name: Launch post-upgrade cleaning scripts
162 when: "'Nextcloud is already latest version' not in nc_upgrade_result.stdout_lines"
163 block:
164
165 - name: Launch some occ cleaning command
166 become_user: "{{ nextcloud_websrv_user }}"
167 become: true
168 ansible.builtin.command: "./console { command }}"
169 args:
170 chdir: "{{ nextcloud_webroot }}"
171 loop:
172 - db:add-missing-columns
173 - db:add-missing-indices
174 - db:add-missing-primary-keys
175 - dav:remove-invalid-shares
176 - files:cleanup
177 # - files:scan --all
178 loop_control:
179 loop_var: command
180 register: nc_indices_cmd
181
182 - name: Display each occ commands result
183 ansible.builtin.debug:
184 msg: "{{ item.stdout_lines }}"
185 loop: "{{ nc_indices_cmd.results }}"
186 loop_control:
187 label: "{{ item.command }}"