Files
SavaneWiki/docs/Ansible/2023-10-01-nextcloud-docker-update-from-ansible.md

3.1 KiB
Raw Blame History

title, summary, author, date
title summary author date
Mise à jour de Nextcloud docker par Ansible brief decription to sum up
JF
2023-10-01

Mise à jour de Nextcloud docker par Ansible

Prérequis

Se connecter en SSH au Synology à laide dune clef asymétrique.

Le playbook

---
- name: Mise à jour du conteneur Nextcloud
  hosts: savaneprod.fr
  vars:
    nc_previous_version: 29.0.8
    nc_version: 30.0.1
  tasks:
    - name: Modification de la version dans le docker-compose
      ansible.builtin.lineinfile:
        path: /volume1/nextcloud/docker-compose.yaml
        backrefs: true
        backup: false
        state: present
        regexp: "^    image: nextcloud:"
        line: "    image: nextcloud:{{ nc_version }}"

    - name: "Téléchargement de l'image nextcloud: {{ nc_version }}"
      community.docker.docker_image:
      # Needed on DSM : pip3 install docker
        name: nextcloud
        source: pull 
        tag: '{{ nc_version }}'

    - name: Compose down & compose up detached
      # Needed on DSM : pip3 install docker-compose
      community.docker.docker_compose:
#      community.docker.docker_compose_v2:
#        docker_cli: "/bin/docker-compose"
        project_src: "/volume1/nextcloud"
        recreate: smart
#        recreate: auto

    - name: Pause en attendant la remontée des conteneurs
      ansible.builtin.pause
        #minutes: 2
        seconds: 30

    - name: Modification du fichier .htaccess pour Mac
      tags: caldav
      ansible.builtin.lineinfile:
        path: /volume1/nextcloud/data/.htaccess
        backup: false
        state: present
        search_string: "{{ item.search_string }}"
        line: "{{ item.line }}"
      loop:
        - { search_string: 'RewriteRule ^\.well-known/carddav', line: '  RewriteRule ^\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]' }
        - { search_string: 'RewriteRule ^\.well-known/caldav', line: '  RewriteRule ^\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]' }

    - name: Pause
      ansible.builtin.pause:
        seconds: 30

    - name: "Suppression de la mention de création de compte"
      tags: account
      ansible.builtin.lineinfile:
        path: /volume1/nextcloud/data/config/config.php
        backup: false
        state: present
        insertafter: "CONFIG"
        line: "  'simpleSignUpLink.shown' => false,"

    - name: "Suppression de l'ancienne image : {{ nc_previous_version }}"
      community.docker.docker_image_remove:
      # Needed on DSM : pip3 install docker
        name: nextcloud
        tag: '{{ nc_previous_version }}'

    - name: "Mise à jour de la base de données"
      tags: db-maintenance
      community.docker.docker_container_exec:
        container: nextcloud_app_1
        tty: true
        user: www-data
        command: "{{ item }}"
      loop:
        - "php occ db:add-missing-columns"
        - "php occ db:add-missing-indices"
        - "php occ db:add-missing-primary-keys"
        - "php occ maintenance:repair --include-expensive"
        - "php occ config:system:set maintenance_window_start --type=integer --value=1"