--- # Le chemin de destination PORTE la version : cet artefact est immuable une fois pose. # Sans garde, `get_url` recontacte le serveur distant a CHAQUE deploiement — et un # serveur tiers lent suffit alors a faire tomber un deploiement de flotte. Constate le # 2026-08-09 sur le binaire Forgejo, meme motif ici. - name: L artefact de cette version est-il deja pose ? ansible.builtin.stat: path: "/tmp/nextcloud-{{ serveur_nextcloud_version }}.tar.bz2" register: serveur_nextcloud_archive_present - name: Telecharger le tarball Nextcloud (version epinglee) when: not serveur_nextcloud_archive_present.stat.exists ansible.builtin.get_url: url: "{{ serveur_nextcloud_url }}" dest: "/tmp/nextcloud-{{ serveur_nextcloud_version }}.tar.bz2" mode: "0644" - name: Extraire Nextcloud dans /var/www (si absent) ansible.builtin.unarchive: src: "/tmp/nextcloud-{{ serveur_nextcloud_version }}.tar.bz2" dest: "/var/www/" remote_src: true owner: "{{ serveur_nextcloud_utilisateur }}" group: "{{ serveur_nextcloud_utilisateur }}" creates: "{{ serveur_nextcloud_racine }}/occ" - name: Installer Nextcloud (occ maintenance:install, PG en TLS ; une seule fois) ansible.builtin.command: cmd: >- php {{ serveur_nextcloud_racine }}/occ maintenance:install --database pgsql --database-host {{ serveur_nextcloud_db_host }} --database-name {{ serveur_nextcloud_db_name }} --database-user {{ serveur_nextcloud_db_user }} --database-pass {{ serveur_nextcloud_db_password }} --admin-user {{ serveur_nextcloud_admin_user }} --admin-pass {{ serveur_nextcloud_admin_password }} --data-dir {{ serveur_nextcloud_data_dir }} creates: "{{ serveur_nextcloud_racine }}/config/config.php" become: true become_user: "{{ serveur_nextcloud_utilisateur }}" environment: PGSSLMODE: "{{ serveur_nextcloud_pg_sslmode }}" PGSSLROOTCERT: "{{ serveur_nextcloud_ca_racine }}" no_log: true when: not ansible_check_mode