From b8a138b80ac172f9c18309fd9275171bf30525c6 Mon Sep 17 00:00:00 2001 From: Olivier Navas Date: Fri, 23 Feb 2024 21:23:06 +0100 Subject: [PATCH] Commit initial --- README.md | 38 +++++++++++++++++++++++++++ defaults/main.yml | 5 ++++ handlers/main.yml | 5 ++++ meta/main.yml | 8 ++++++ tasks/main.yml | 18 +++++++++++++ templates/docker-compose.yml | 51 ++++++++++++++++++++++++++++++++++++ 6 files changed, 125 insertions(+) create mode 100644 README.md create mode 100644 defaults/main.yml create mode 100644 handlers/main.yml create mode 100644 meta/main.yml create mode 100644 tasks/main.yml create mode 100644 templates/docker-compose.yml diff --git a/README.md b/README.md new file mode 100644 index 0000000..c08bc45 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# Role : docker_wekan + +## Services fournis + +Installation de wekan sur un serveur docker_host + +## Variables + +```yaml +docker_wekan_fqdn: wekan.example.com +docker_wekan_version: wekanteam/wekan:v7.33 +docker_wekan_data_dir: /data1 +docker_wekan_service_id: wekan_example_com +docker_wekan_custom_env: | + - WITH_API=true + - RICHER_CARD_COMMENT_EDITOR=true + - BIGEVENTS_PATTERN=NONE + - CARD_OPENED_WEBHOOK_ENABLED=false + - MAIL_URL=smtp://mail.axamplecom:587 + - MAIL_FROM=Wekan Notifications + - MAIL_SERVICE_USER=wekan@example.com + - MAIL_SERVICE_PASSWORD=lemotmotdepasse + +``` + +| Option | Valeur par défaut | Description | +|-------------------------------|-----------------------|-------------------------------------------------------------------------------------------| +| docker_wekan_fqdn | | Le nom de domaine pour lequel le service wekan répond | +| docker_wekan_version | | La version de l'image docker wekan | +| docker_wekan_data_dir | | L'emplacement dans lequel se trouvent les volumes de donnees docker pour le service | +| docker_wekan_service_id | | Le nom de service souhaité : conditionne le nommage des volumes et le routage par traefik | +| docker_wekan_custom_env | cf. defaults/main.yml | Ensemble de variables d'environnement qui peuvent être passées à Wekan pour le configurer | + + +## Premier démarrage dans wekan + +* Le premier utilisateur enregistré sera administrateur de l'instance wekan. +* Depuis l'interface administrateur, envisager de désactiver l'auto inscription (paramètres/inscription). diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..9b6be03 --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,5 @@ +docker_wekan_custom_env: | + - WITH_API=true + - RICHER_CARD_COMMENT_EDITOR=true + - BIGEVENTS_PATTERN=NONE + - CARD_OPENED_WEBHOOK_ENABLED=false diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..591ad66 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,5 @@ +- name: docker-compose-up + shell: | + docker compose up -d + args: + chdir: /opt/{{ docker_wekan_service_id }}/ diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..67cd471 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,8 @@ +galaxy_info: + author: Olivier Navas + description: Modèle d'installation Libretic pour wekan + license: GPL-3.0-only + min_ansible_version: 2.9 + galaxy_tags: [] + +dependencies: [] diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..a58cee8 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,18 @@ +- name: docker directory + file: + path: /opt/{{ docker_wekan_service_id }}/ + state: directory + +- name: docker data directory + file: + path: "{{ docker_wekan_data_dir }}/{{ docker_wekan_service_id }}/" + state: directory + register: _datadir + +- name: prepare docker-compose.yml and files + template: + src: "{{ item }}" + dest: /opt/{{ docker_wekan_service_id }}/ + with_items: + - docker-compose.yml + notify: docker-compose-up diff --git a/templates/docker-compose.yml b/templates/docker-compose.yml new file mode 100644 index 0000000..cb0adcb --- /dev/null +++ b/templates/docker-compose.yml @@ -0,0 +1,51 @@ +# {{ ansible_managed }} + +version: '3.1' + +services: + wekan: + image: {{ docker_wekan_image_version }} + restart: always + environment: + - WRITABLE_PATH=/data + - MONGO_URL=mongodb://db:27017/wekan + - ROOT_URL=https://{{ docker_wekan_fqdn }} + - BROWSER_POLICY_ENABLED=true + {{ docker_wekan_custom_env | indent(6, False) }} + volumes: + - /etc/localtime:/etc/localtime:ro + - {{ docker_wekan_data_dir }}/{{ docker_wekan_service_id }}/wekan-files:/data + labels: + traefik.enable: "true" + traefik.docker.network: "traefik" + traefik.http.routers.{{ docker_wekan_service_id }}.entrypoints: "web" + traefik.http.routers.{{ docker_wekan_service_id }}.rule: "Host(`{{ docker_wekan_fqdn }}`)" + traefik.http.services.{{ docker_wekan_service_id }}.loadbalancer.server.port: "8080" + networks: + - traefik + - wekan + depends_on: + - db + + db: + image: mongo:6 + restart: always + # command: mongod --oplogSize 128 + # Syslog: mongod --syslog --oplogSize 128 --quiet + # Disable MongoDB logs: + command: mongod --logpath /dev/null --oplogSize 128 --quiet + networks: + - wekan + expose: + - 27017 + volumes: + - /etc/localtime:/etc/localtime:ro + - {{ docker_wekan_data_dir }}/{{ docker_wekan_service_id }}/wekan-db:/data/db + - {{ docker_wekan_data_dir }}/{{ docker_wekan_service_id }}/wekan-db-dump:/dump + + +networks: + traefik: + external: true + wekan: + internal: true