--- # 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.8)' private: false default: "27.1.8" - name: TLD prompt: 'TLD du site à mettre à jour?(ex: org)' private: false default: "org" - name: DOMAIN prompt: 'Domaine du site à mettre à jour?(ex: heureux-cyclage)' private: false default: "heureux-cyclage" - 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ée become: true ansible.builtin.stat: path: "{{ nextcloud_source }}" register: new_nextcloud_source - 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_php_user }}" become: true ansible.builtin.command: '{{ nextcloud_webroot }}/console status --output=json' register: result - name: Enregistrer l'ancienne version ansible.builtin.set_fact: ancienne_version: "{{ tmp.versionstring }}" vars: tmp: "{{ result.stdout | from_json }}" tasks: - name: Include download_nextcloud_source tasks ansible.builtin.include_tasks: tasks/download_nextcloud_source.yml when: not new_nextcloud_source.stat.exists vars: ansible_become: true become_user: nextcloud - name: Create new app common folder from old version one become_user: nextcloud become: true ansible.builtin.copy: src: "{{ nextcloud_common_files_path }}/nextcloud-{{ ancienne_version }}/" dest: "{{ nextcloud_common_files_path }}/nextcloud-{{ nouvelle_version }}" 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 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: Include restore tasks si restore = oui ansible.builtin.include_tasks: tasks/restore_nextcloud.yml when: restore == 'oui'