correction syntaxe
[lhc/ansible.git] / update_nuage_instance.yml
index eb40ebb..3f8fa94 100644 (file)
@@ -1,42 +1,55 @@
 ---
 # commande pour lancer le playbook: ansible-playbook update_nuage_instance.yml
+# ATTENTION pour l'instance "test-nuage" il faut lancer la commande ci-dessous pour lancer le playbook:
+# ansible-playbook update_nuage_instance.yml --extra-vars "test_nuage=true"
 
 - name: Promp pour définir les variables
   hosts: ligatures
   vars_prompt:
 
     - name: nouvelle_version
-      prompt: 'Nouvelle version nextcloud à télécharger?(ex: 27.1.0)'
+      prompt: 'Nouvelle version nextcloud à télécharger?(ex: 27.1.8)'
       private: false
+      default: "27.1.8"
 
-    - name: tld
+    - name: TLD
       prompt: 'TLD du site à mettre à jour?(ex: org)'
       private: false
+      default: "org"
 
-    - name: domain
+    - name: DOMAIN
       prompt: 'Domaine du site à mettre à jour?(ex: heureux-cyclage)'
       private: false
+      default: "heureux-cyclage"
 
-    - name: sigle
+    - name: SIGLE
       prompt: 'Sigle du site à mettre à jour?(ex: lhc)'
       private: false
+      default: "lhc"
 
   pre_tasks:
 
-    - name: Vérif si la source nextcloud est téléchargé
+    - name: Vérif si la source nextcloud est téléchargée
       become: true
       ansible.builtin.stat:
         path: "{{ nextcloud_source }}"
       register: new_nextcloud_source
 
-    - name: Vérif si le dossier common app est créé
+    - name: Vérif' si le dossier common app est créé
       become: true
       ansible.builtin.stat:
         path: "{{ nextcloud_common }}"
       register: new_nextcloud_common
 
+    - name: specific test-nuage tasks
+      ansible.builtin.set_fact:
+        nextcloud_webroot: "/home/sites/data/{{ TLD }}/{{ DOMAIN }}/test-nuage"
+        nextcloud_websrv_user: site_lhc_test-nuage
+        nextcloud_php_user: php_lhc_test_nuage
+      when: test_nuage is defined
+
     - name: Obtenir l'ancienne version  # noqa : command-instead-of-module
-      become_user: "{{ nextcloud_websrv_user }}"
+      become_user: "{{ nextcloud_php_user }}"
       become: true
       ansible.builtin.command: '{{ nextcloud_webroot }}/console status --output=json'
       register: result
       ansible.builtin.copy:
         src: "{{ nextcloud_common_files_path }}/nextcloud-{{ ancienne_version }}/"
         dest: "{{ nextcloud_common_files_path }}/nextcloud-{{ nouvelle_version }}"
-        remote_src: true # because the config file is already in the nextcloud_tmp_path
+        remote_src: true # because the copy is from remote host to remote host
         mode: '754' # or 'u=rwx,g=rx,o=r'
       when: not new_nextcloud_common.stat.exists
 
-    - name: Include update tasks
-      ansible.builtin.include_tasks: tasks/update_nextcloud.yml
+    - name: Include backup tasks
+      ansible.builtin.include_tasks: tasks/backup_nextcloud.yml
+
+    - name: block upgrade
+      block:
+
+        - name: Include update tasks
+          ansible.builtin.include_tasks: tasks/update_nextcloud.yml
+
+        - name: Display upgrade result
+          ansible.builtin.debug:
+            msg: "Le nuage de {{ DOMAIN }} a été mis à jour avec la nouvelle version {{ nouvelle_version }}"
+
+      always: 
+
+        - name: Demande si besoin de restaurer la version précédente
+          ansible.builtin.pause:
+            prompt: 'Voulez-vous restaurer la version precedente?(oui/non)'
+            echo: true
+          register: restore_promp
+
+        - name: Definir la variable restore
+          ansible.builtin.set_fact:
+            restore: "{{ restore_promp.user_input | default(non) }}"
 
-    - name: Display upgrade result
-      ansible.builtin.debug:
-        msg: "Le nuage de {{ domain }} a été mis à jour avec la nouvelle version {{ nouvelle_version }}"
+        - name: Include restore tasks si restore = oui
+          ansible.builtin.include_tasks: tasks/restore_nextcloud.yml
+          when: restore == 'oui'
\ No newline at end of file