ajout du playbook upgrade_nuage_instance
[lhc/ansible.git] / update_nuage_instance.yml
diff --git a/update_nuage_instance.yml b/update_nuage_instance.yml
new file mode 100644 (file)
index 0000000..f68ce5c
--- /dev/null
@@ -0,0 +1,69 @@
+---
+# 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 }}"