2026-04-09 12:46:59 +00:00
|
|
|
---
|
|
|
|
|
# VM Nextcloud : cloud personnel
|
|
|
|
|
# Deploie Nextcloud + PostgreSQL via Docker Compose
|
|
|
|
|
# Les donnees utilisateur sont stockees sur le QNAP via NFS
|
|
|
|
|
|
|
|
|
|
- name: Deploiement Nextcloud
|
|
|
|
|
hosts: nextcloud
|
|
|
|
|
become: true
|
|
|
|
|
|
|
|
|
|
tasks:
|
|
|
|
|
# -- Montage NFS vers le QNAP pour les donnees --
|
|
|
|
|
- name: Creation du repertoire parent /mnt/nas
|
|
|
|
|
ansible.builtin.file:
|
|
|
|
|
path: /mnt/nas
|
|
|
|
|
state: directory
|
|
|
|
|
mode: "0755"
|
|
|
|
|
tags: [nfs]
|
|
|
|
|
|
|
|
|
|
- name: Creation du point de montage NFS
|
|
|
|
|
ansible.builtin.shell: mkdir -p /mnt/nas/nextcloud-data
|
|
|
|
|
args:
|
|
|
|
|
creates: /mnt/nas/nextcloud-data
|
|
|
|
|
tags: [nfs]
|
|
|
|
|
|
|
|
|
|
- name: Montage NFS QNAP pour les donnees Nextcloud
|
|
|
|
|
ansible.posix.mount:
|
|
|
|
|
src: "{{ nas_ip }}:/nextcloud-data"
|
|
|
|
|
path: /mnt/nas/nextcloud-data
|
|
|
|
|
fstype: nfs
|
|
|
|
|
opts: defaults,noatime
|
|
|
|
|
state: mounted
|
|
|
|
|
tags: [nfs]
|
|
|
|
|
|
|
|
|
|
# -- Deploiement Nextcloud --
|
|
|
|
|
- name: Creation des repertoires Nextcloud
|
|
|
|
|
ansible.builtin.file:
|
|
|
|
|
path: "{{ item }}"
|
|
|
|
|
state: directory
|
|
|
|
|
owner: "{{ admin_user }}"
|
|
|
|
|
group: "{{ admin_user }}"
|
|
|
|
|
mode: "0755"
|
|
|
|
|
loop:
|
|
|
|
|
- /opt/nextcloud
|
|
|
|
|
- /opt/nextcloud/postgres
|
|
|
|
|
tags: [nextcloud]
|
|
|
|
|
|
|
|
|
|
- name: Deploiement docker-compose Nextcloud
|
|
|
|
|
ansible.builtin.copy:
|
|
|
|
|
src: ../../docker/nextcloud/docker-compose.yml
|
|
|
|
|
dest: /opt/nextcloud/docker-compose.yml
|
|
|
|
|
owner: "{{ admin_user }}"
|
|
|
|
|
group: "{{ admin_user }}"
|
|
|
|
|
mode: "0644"
|
|
|
|
|
tags: [nextcloud]
|
|
|
|
|
|
|
|
|
|
- name: Deploiement .env Nextcloud
|
|
|
|
|
ansible.builtin.template:
|
|
|
|
|
src: nextcloud.env.j2
|
|
|
|
|
dest: /opt/nextcloud/.env
|
|
|
|
|
owner: "{{ admin_user }}"
|
|
|
|
|
group: "{{ admin_user }}"
|
|
|
|
|
mode: "0600"
|
|
|
|
|
tags: [nextcloud]
|
|
|
|
|
|
|
|
|
|
- name: Demarrage Nextcloud
|
|
|
|
|
community.docker.docker_compose_v2:
|
|
|
|
|
project_src: /opt/nextcloud
|
|
|
|
|
state: present
|
|
|
|
|
tags: [nextcloud]
|
|
|
|
|
|
|
|
|
|
- name: Config personnalisee Nextcloud (permissions NFS)
|
|
|
|
|
ansible.builtin.copy:
|
|
|
|
|
src: ../../docker/nextcloud/custom.config.php
|
|
|
|
|
dest: /opt/nextcloud/custom.config.php
|
|
|
|
|
mode: "0644"
|
|
|
|
|
tags: [nextcloud]
|
|
|
|
|
|
|
|
|
|
- name: Injection config dans le container Nextcloud
|
|
|
|
|
ansible.builtin.shell: >
|
|
|
|
|
docker cp /opt/nextcloud/custom.config.php
|
|
|
|
|
nextcloud:/var/www/html/config/custom.config.php
|
|
|
|
|
changed_when: false
|
|
|
|
|
tags: [nextcloud]
|
|
|
|
|
|
2026-04-29 13:49:37 +00:00
|
|
|
- name: Attendre que Nextcloud soit pret
|
|
|
|
|
ansible.builtin.shell: >
|
|
|
|
|
docker exec nextcloud php occ status --output=json
|
|
|
|
|
register: nc_status
|
|
|
|
|
retries: 15
|
|
|
|
|
delay: 10
|
|
|
|
|
until: nc_status.rc == 0
|
|
|
|
|
changed_when: false
|
|
|
|
|
tags: [nextcloud]
|
|
|
|
|
|
|
|
|
|
- name: Ajout trusted_domain cloud.elewyn.dev
|
|
|
|
|
ansible.builtin.shell: >
|
|
|
|
|
docker exec nextcloud php occ config:system:set
|
|
|
|
|
trusted_domains 2 --value={{ vault_nextcloud_domain }}
|
|
|
|
|
changed_when: true
|
|
|
|
|
tags: [nextcloud]
|
|
|
|
|
|
2026-04-09 12:46:59 +00:00
|
|
|
- name: Ouverture port Nextcloud
|
|
|
|
|
ansible.posix.firewalld:
|
|
|
|
|
port: 8080/tcp
|
|
|
|
|
permanent: true
|
|
|
|
|
state: enabled
|
|
|
|
|
notify: reload firewalld
|
|
|
|
|
tags: [nextcloud, firewall]
|
|
|
|
|
|
|
|
|
|
handlers:
|
|
|
|
|
- name: reload firewalld
|
|
|
|
|
ansible.builtin.systemd:
|
|
|
|
|
name: firewalld
|
|
|
|
|
state: reloaded
|