+---
+# commande pour lancer le playbook: ansible-playbook update_nuage_instance.yml -e "site_domain=cyclocoop"
+
+# promp pour définir les variables
+- hosts: ligatures
+ vars_prompt:
+ - name: nouvelle_version
+ prompt: 'Nouvelle version nextcloud à télécharger?(ex: 27.1.0)'
+ private: false
+
+ - name: tld
+ prompt: 'TLD du site à mettre à jour?(ex: org)'
+ private: false
+
+ - name: domain
+ prompt: 'Domaine du site à mettre à jour?(ex: heureux-cyclage)'
+ private: false
+
+ - name: sigle
+ prompt: 'Sigle du site à mettre à jour?(ex: lhc)'
+ private: false
+ pre_tasks:
+ - name: Vérif si la source nextcloud est téléchargé
+ 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: obtenir l'ancienne version
+ become_user: "{{ nextcloud_websrv_user }}"
+ become: true
+ command: '{{ nextcloud_webroot }}/console status --output=json'
+ register: result
+
+ - name: enregistrer l'ancienne version
+ set_fact:
+ ancienne_version: "{{ tmp.versionstring }}"
+ vars:
+ tmp: "{{ result.stdout | from_json }}"
+
+ tasks:
+
+ - 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: yes #because the config file is already in the nextcloud_tmp_path
+ mode: '754' #or 'u=rwx,g=rx,o=r'
+ when: not new_nextcloud_common.stat.exists
+
+ - include_tasks: tasks/update_nextcloud.yml
+
+ - name: display upgrade result
+ debug:
+ msg: "Le nuage de {{ domain }} a été mis à jour avec la nouvelle version {{ nouvelle_version }}"