X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=update_nuage_instance.yml;h=3f8fa94d67d6accd15866187d9163af3a6ab8b11;hb=HEAD;hp=eb40ebb3f98d5bc5c01b043ea3e5b720659c9e15;hpb=925356cb873bdc6560f10a6693da74c8791e97ca;p=lhc%2Fansible.git diff --git a/update_nuage_instance.yml b/update_nuage_instance.yml index eb40ebb..5c0aa56 100644 --- a/update_nuage_instance.yml +++ b/update_nuage_instance.yml @@ -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: "28.0.6" - - 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 @@ -56,19 +69,49 @@ ansible_become: true become_user: nextcloud - - name: Create new app common folder from old version one - become_user: nextcloud +# on met à jour une instance uniquement si test-nuage a préalablement été mis à jour dans cette version + + - name: fail si test-nuage n'a pas été mis à jour avec cette version + ansible.builtin.fail: + msg: 'il faut déjà mettre à jour test-nuage avec cette version' + when: not new_nextcloud_common.stat.exists and test_nuage is not defined + + - name: Création du dossier common de la nouvelle version en utilisant les apps de l'instance test-nuage become: true ansible.builtin.copy: - src: "{{ nextcloud_common_files_path }}/nextcloud-{{ ancienne_version }}/" + src: "/home/sites/data/org/heureux-cyclage/test-nuage/apps/" 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 + owner: nextcloud + group: nextcloud + when: not new_nextcloud_common.stat.exists and test_nuage is defined + + - 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: Include update tasks - ansible.builtin.include_tasks: tasks/update_nextcloud.yml + - 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