# Mise à jour de Nextcloud docker par Ansible

## Prérequis

Se connecter en SSH au Synology à l’aide d’une clef asymétrique.

## Le playbook

    ---
    - name: Mise à jour du conteneur Nextcloud
      hosts: savaneprod.fr
      vars:
        nc_version: 28.0.5
      tasks:
        - name: Modification de la versions 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:
            project_src: "/volume1/nextcloud"
            recreate: smart

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

        - name: "Mise à jour de la base de données"
          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 config:system:set maintenance_window_start --type=integer --value=1"

        - name: Pause de 1 minute
          ansible.builtin.pause:
            minutes: 1

        - 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]' }

=> Cette façon de faire renvoi un problème d'intégrité sur le fichier config.php.

« Previous Next »