Set-OPS-Public/roles/serveur_nextcloud/tasks/installer.yml
Daniel Allaire 79d0529686 serveur_nextcloud : rôle codifié depuis le spike (13 gotchas encodés)
Maison numérique souveraine (offres maison-obnl + cabinet). Tâches découpées :
paquets → php (512M + TLS PG) → install (occ, PG verify-full) → exposition
(vhost .mjs) → configure (overwrite/redis/anti-SSRF/import CA) → OIDC user_oidc
→ Collabora richdocuments (WOPI split URL) → thème Alliance (ciel étoilé).

Chaque réglage encode un piège prouvé sur collab-01 : imagick Debian 13,
PGSSLMODE dans php-fpm, MIME .mjs, allow_local_remote_servers (SSRF), import
root step-ca, memory_limit 512M, public_wopi_url après activate-config…

Version épinglée (robustesse). ansible-lint profil production : 0 échec.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 15:00:39 -04:00

36 lines
1.4 KiB
YAML

---
- name: Telecharger le tarball Nextcloud (version epinglee)
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