Skip to content
Extraits de code Groupes Projets
Valider c6351d9e rédigé par Théo - Le Filament's avatar Théo - Le Filament
Parcourir les fichiers

change: migrate to Docker Compose v2

parent b7d811e7
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
--- ---
- name: Start nextcloud docker - name: "Restart Nextcloud container"
community.docker.docker_compose: community.docker.docker_compose_v2:
project_src: /home/docker/nextcloud/ project_src: "/home/docker/nextcloud"
recreate: always
remove_orphans: true
state: present
pull: missing
async: 120 async: 120
poll: 10 poll: 10
when: not ansible_check_mode listen: "restart nextcloud container"
--- ---
- name: Create nextcloud Docker structure on server in /home/docker/nextcloud - name: "Create nextcloud Docker structure on server in /home/docker/nextcloud"
ansible.builtin.file: ansible.builtin.file:
name: "/home/docker/nextcloud" name: "/home/docker/nextcloud"
state: directory state: "directory"
owner: root owner: "root"
group: root group: "root"
mode: '0755' mode: "0755"
## Install Nextcloud docker ## Install Nextcloud docker
- name: Install nextcloud docker - name: "Install nextcloud docker"
ansible.builtin.template: ansible.builtin.template:
src: nextcloud.yaml.j2 src: "nextcloud.yaml.j2"
dest: /home/docker/nextcloud/docker-compose.yaml dest: "/home/docker/nextcloud/docker-compose.yaml"
owner: root owner: "root"
group: root group: "root"
mode: '0400' mode: "0400"
notify: notify:
- Start nextcloud docker - "restart nextcloud container"
- name: Add extra PHP configuration - name: "Add extra PHP configuration"
ansible.builtin.template: ansible.builtin.template:
src: nextcloud-extra.ini.j2 src: "nextcloud-extra.ini.j2"
dest: /home/docker/nextcloud/nextcloud-extra.ini dest: "/home/docker/nextcloud/nextcloud-extra.ini"
owner: root owner: "root"
group: root group: "root"
mode: '0644' mode: "0644"
- name: Add cron job for nextcloud cron.php - name: "Add cron job for nextcloud cron.php"
ansible.builtin.cron: ansible.builtin.cron:
name: nextcloud cron.php name: "nextcloud cron.php"
minute: "*/5" minute: "*/5"
job: /usr/bin/docker exec --user www-data nextcloud php cron.php job: "/usr/bin/docker exec --user www-data nextcloud php cron.php"
## Install Nextcloud backup docker ## Install Nextcloud backup docker
- name: Install nextcloud backup compose file - name: "Install nextcloud backup compose file"
ansible.builtin.template: ansible.builtin.template:
src: backup.yaml.j2 src: "backup.yaml.j2"
dest: /home/docker/backups/backup-nextcloud.yaml dest: "/home/docker/backups/backup-nextcloud.yaml"
owner: root owner: "root"
group: root group: "root"
mode: '0400' mode: "0400"
when: inventory_hostname in groups['maintenance_contract'] when: inventory_hostname in groups['maintenance_contract']
- name: Copy docker file for mysql duplicity - name: "Copy docker file for mysql duplicity"
ansible.builtin.copy: ansible.builtin.copy:
src: Dockerfile-backup src: "Dockerfile-backup"
dest: /home/docker/backups/Dockerfile-mysql dest: "/home/docker/backups/Dockerfile-mysql"
owner: root owner: "root"
group: root group: "root"
mode: '0644' mode: "0644"
when: inventory_hostname in groups['maintenance_contract'] when: inventory_hostname in groups['maintenance_contract']
- name: Add cron job to run backup every week - name: "Add cron job to run backup every week"
ansible.builtin.cron: ansible.builtin.cron:
name: backup nextcloud name: "backup nextcloud"
minute: "00" minute: "00"
hour: "00" hour: "00"
weekday: "7" weekday: "7"
job: /usr/bin/docker-compose -f /home/docker/backups/backup-nextcloud.yaml run --rm backup_nextcloud job: "/usr/bin/docker compose -f /home/docker/backups/backup-nextcloud.yaml run --rm backup_nextcloud"
when: inventory_hostname in groups['maintenance_contract'] when: inventory_hostname in groups['maintenance_contract']
# Flush handlers in order to start nextcloud if necessary # Flush handlers in order to start nextcloud if necessary
- name: Flush handlers - name: "Flush handlers"
ansible.builtin.meta: flush_handlers ansible.builtin.meta: flush_handlers
# Set correct variables in configuration files # Set correct variables in configuration files
# TODO : replace by writing on nextcloud volume configuration file and restart nextcloud # TODO : replace by writing on nextcloud volume configuration file and restart nextcloud
- name: Set trusted domain 1 - name: "Set trusted domain 1"
ansible.builtin.command: docker exec -u www-data nextcloud php occ --no-warnings "config:system:set" trusted_domains 1 --value="{{ cloud_url }}" ansible.builtin.command:
cmd: "docker exec -u www-data nextcloud php occ --no-warnings 'config:system:set' trusted_domains 1 --value='{{ cloud_url }}'"
- name: Set trusted domain 2 - name: "Set trusted domain 2"
ansible.builtin.command: docker exec -u www-data nextcloud php occ --no-warnings "config:system:set" trusted_domains 2 --value="nextcloud" ansible.builtin.command:
cmd: "docker exec -u www-data nextcloud php occ --no-warnings 'config:system:set' trusted_domains 2 --value='nextcloud'"
- name: Overwrite protocol - name: "Overwrite protocol"
ansible.builtin.command: docker exec -u www-data nextcloud php occ --no-warnings "config:system:set" overwriteprotocol --value="https" ansible.builtin.command:
cmd: "docker exec -u www-data nextcloud php occ --no-warnings 'config:system:set' overwriteprotocol --value='https'"
# Collaborative edition tools configuration # Collaborative edition tools configuration
- name: Install OnlyOffice app - name: "Install OnlyOffice app"
ansible.builtin.command: docker exec -u www-data nextcloud php occ --no-warnings "app:enable" onlyoffice tags:
- "docker_cloudaborative"
ansible.builtin.command:
cmd: "docker exec -u www-data nextcloud php occ --no-warnings 'app:enable' onlyoffice"
when: cloud_onlyoffice when: cloud_onlyoffice
tags: docker_cloudaborative
- name: Set OnlyOffice URL - name: "Set OnlyOffice URL"
ansible.builtin.command: docker exec -u www-data nextcloud php occ --no-warnings "config:system:set" onlyoffice DocumentServerUrl --value="https://{{ cloud_onlyoffice_url }}" tags:
- "docker_cloudaborative"
ansible.builtin.command:
cmd: "docker exec -u www-data nextcloud php occ --no-warnings 'config:system:set' onlyoffice DocumentServerUrl --value='https://{{ cloud_onlyoffice_url }}'"
when: cloud_onlyoffice when: cloud_onlyoffice
tags: docker_cloudaborative
- name: Set internal OnlyOffice URL - name: "Set internal OnlyOffice URL"
ansible.builtin.command: docker exec -u www-data nextcloud php occ --no-warnings "config:system:set" onlyoffice DocumentServerInternalUrl --value="http://onlyoffice/" tags:
- "docker_cloudaborative"
ansible.builtin.command:
cmd: "docker exec -u www-data nextcloud php occ --no-warnings 'config:system:set' onlyoffice DocumentServerInternalUrl --value='http://onlyoffice/'"
when: cloud_onlyoffice when: cloud_onlyoffice
tags: docker_cloudaborative
- name: Set internal NextCloud URL - name: "Set internal NextCloud URL"
ansible.builtin.command: docker exec -u www-data nextcloud php occ --no-warnings "config:system:set" onlyoffice StorageUrl --value="http://nextcloud/" tags:
- "docker_cloudaborative"
ansible.builtin.command:
cmd: "docker exec -u www-data nextcloud php occ --no-warnings 'config:system:set' onlyoffice StorageUrl --value='http://nextcloud/'"
when: cloud_onlyoffice when: cloud_onlyoffice
tags: docker_cloudaborative
- name: Set trusted domain to collabora for collaborative documents - name: "Set trusted domain to collabora for collaborative documents"
ansible.builtin.command: docker exec -u www-data nextcloud php occ --no-warnings "config:system:set" trusted_domains 3 --value="{{ cloud_collabora_url }}" tags:
- "docker_cloudaborative"
ansible.builtin.command:
cmd: "docker exec -u www-data nextcloud php occ --no-warnings 'config:system:set' trusted_domains 3 --value='{{ cloud_collabora_url }}'"
when: cloud_collabora when: cloud_collabora
tags: docker_cloudaborative
- name: Install Collabora app - name: "Install Collabora app"
ansible.builtin.command: docker exec -u www-data nextcloud php occ --no-warnings "app:enable" richdocuments tags:
- "docker_cloudaborative"
ansible.builtin.command:
cmd: "docker exec -u www-data nextcloud php occ --no-warnings 'app:enable' richdocuments"
when: cloud_collabora when: cloud_collabora
tags: docker_cloudaborative
- name: Set Collabora URL - name: "Set Collabora URL"
ansible.builtin.command: docker exec -u www-data nextcloud php occ --no-warnings "config:system:set" richdocuments wopi_url --value="https://{{ cloud_collabora_url }}" tags:
- "docker_cloudaborative"
ansible.builtin.command:
cmd: "docker exec -u www-data nextcloud php occ --no-warnings 'config:system:set' richdocuments wopi_url --value='https://{{ cloud_collabora_url }}'"
when: cloud_collabora when: cloud_collabora
tags: docker_cloudaborative
...@@ -13,13 +13,13 @@ services: ...@@ -13,13 +13,13 @@ services:
MYSQL_PASSWORD: {{ cloud_db_pass }} MYSQL_PASSWORD: {{ cloud_db_pass }}
MYSQL_HOST: db MYSQL_HOST: db
PASSPHRASE: "{{ cloud_backup_pass | default(cloud_db_pass) }}" PASSPHRASE: "{{ cloud_backup_pass | default(cloud_db_pass) }}"
SWIFT_USERNAME: "{{ swift_cloud_username }}" SWIFT_USERNAME: "{{ template_backup_credentials.username }}"
SWIFT_PASSWORD: "{{ swift_cloud_password }}" SWIFT_PASSWORD: "{{ template_backup_credentials.password }}"
SWIFT_AUTHURL: "{{ swift_cloud_authurl }}" SWIFT_AUTHURL: "{{ template_backup_account.value.authurl }}"
SWIFT_AUTHVERSION: {{ swift_cloud_authversion }} SWIFT_AUTHVERSION: {{ template_backup_account.value.authversion }}
SWIFT_TENANTNAME: "{{ swift_cloud_tenantname }}" SWIFT_TENANTNAME: "{{ template_backup_account.value.tenantname }}"
SWIFT_TENANTID: "{{ swift_cloud_tenantid }}" SWIFT_TENANTID: "{{ template_backup_account.value.tenantid }}"
SWIFT_REGIONNAME: "{{ swift_cloud_regionname }}" SWIFT_REGIONNAME: "{{ template_backup_account.value.regionname }}"
JOB_300_WHAT: "mysqldump -h $$MYSQL_HOST -u $$MYSQL_USER -p$$MYSQL_PASSWORD $$MYSQL_DATABASE --result-file='$$SRC/mysql_$${MYSQL_HOST}_$$MYSQL_DATABASE.sql' && dup full $$SRC $$DST && rm '$$SRC/mysql_$${MYSQL_HOST}_$$MYSQL_DATABASE.sql'" JOB_300_WHAT: "mysqldump -h $$MYSQL_HOST -u $$MYSQL_USER -p$$MYSQL_PASSWORD $$MYSQL_DATABASE --result-file='$$SRC/mysql_$${MYSQL_HOST}_$$MYSQL_DATABASE.sql' && dup full $$SRC $$DST && rm '$$SRC/mysql_$${MYSQL_HOST}_$$MYSQL_DATABASE.sql'"
JOB_300_WHEN: "weekly" JOB_300_WHEN: "weekly"
JOB_302_WHAT: "dup remove-all-but-n-full 5 --force $$DST $$@" JOB_302_WHAT: "dup remove-all-but-n-full 5 --force $$DST $$@"
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter