mise à jour du code selon ansible-lint
[lhc/ansible.git] / tasks / restore_to_vm.yml
index ca771cb..4998bc2 100644 (file)
 ---
-- 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 }}"