Homelab/ansible/playbooks/nextcloud.yml

97 lines
2.7 KiB
YAML

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