--- # 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] - 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