Commit initial

This commit is contained in:
Navas 2022-08-28 21:00:48 +02:00
commit 3e9e513633
6 changed files with 151 additions and 0 deletions

35
README.md Normal file
View File

@ -0,0 +1,35 @@
# Role : docker_jitsimeet
## Services fournis
- main.yml : Installation de jitsimeet sur un serveur docker_host
## Variables
Fournir les variables suivantes. Par exemple :
```yaml
docker_jitsimeet_fqdn: jitsimeet.example.com
docker_jitsimeet_version: stable-7648-4
docker_jitsimeet_data_dir: /data1
docker_jitsimeet_service_id: jitsimeet
docker_jitsimeet_jicofo_auth_password: "coller_ici_jicofo_auth_password"
docker_jitsimeet_jvb_auth_password: "coller_ici_jvb_auth_password"
docker_jitsimeet_jvb_host_address: 10.11.12.13
docker_jitsimeet_etherpad_public_url: https://pad.libretic.fr
```
| Option | Valeur par défaut | Description |
|---------------------------------------|-------------------|--------------------------------------------------------------------------------------------|
| docker_jitsimeet_fqdn | | Le fqdn pour accéder à jitsimeet |
| docker_jitsimeet_version | | Version de l'image jitsimeet |
| docker_jitsimeet_data_dir | | L'emplacement dans lequel se trouvent les volumes de donnees docker pour le service |
| docker_jitsimeet_service_id | | Le nom de service souhaité : conditionne le nommage des dossiers et le routage par traefik |
| docker_jitsimeet_jicofo_auth_password | | Mdp de jicofo ; générer avec `openssl rand -hex 16` |
| docker_jitsimeet_jvb_auth_password | | Mdp de jvb ; générer avec `openssl rand -hex 16` |
| docker_jitsimeet_jvb_host_address | | Adresse du serveur docker sur lequel écoute le service jvb |
| docker_jitsimeet_etherpad_public_url | | Si précisé, indique à Jitsi un serveur sur lequel partager un document par réunion |

0
defaults/main.yml Normal file
View File

5
handlers/main.yml Normal file
View File

@ -0,0 +1,5 @@
- name: docker-compose-up
shell: |
docker-compose up -d
args:
chdir: /opt/{{ docker_jitsimeet_service_id }}/

8
meta/main.yml Normal file
View File

@ -0,0 +1,8 @@
galaxy_info:
author: Olivier Navas
description: Modèle d'installation Libretic pour jitsimeet
license: GPL-3.0-only
min_ansible_version: 2.9
galaxy_tags: []
dependencies: []

17
tasks/main.yml Normal file
View File

@ -0,0 +1,17 @@
- name: docker directory
file:
path: /opt/{{ docker_jitsimeet_service_id }}/
state: directory
- name: prepare docker-compose.yml
template:
src: "{{ item }}"
dest: /opt/{{ docker_jitsimeet_service_id }}/
with_items:
- docker-compose.yml
notify: docker-compose-up

View File

@ -0,0 +1,86 @@
# {{ ansible_managed }}
version: '3.5'
services:
# Frontend
web:
image: jitsi/web:{{ docker_jitsimeet_version }}
restart: always
volumes:
- {{ docker_jitsimeet_data_dir }}/{{ docker_jitsimeet_service_id }}/web:/config
- {{ docker_jitsimeet_data_dir }}/{{ docker_jitsimeet_service_id }}/web/crontabs:/var/spool/cron/crontabs
- {{ docker_jitsimeet_data_dir }}/{{ docker_jitsimeet_service_id }}/transcripts:/usr/share/jitsi-meet/transcripts
environment:
- PUBLIC_URL=https://{{ docker_jitsimeet_fqdn }}
- JICOFO_AUTH_PASSWORD={{ docker_jitsimeet_jicofo_auth_password }}
{% if docker_jitsimeet_etherpad_public_url is defined %}
- ETHERPAD_PUBLIC_URL={{ docker_jitsimeet_etherpad_public_url }}
{% endif %}
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik"
- "traefik.http.routers.{{ docker_jitsimeet_service_id }}.entrypoints=web"
- "traefik.http.routers.{{ docker_jitsimeet_service_id }}.rule=Host(`{{ docker_jitsimeet_fqdn }}`)"
- "traefik.http.services.{{ docker_jitsimeet_service_id }}.loadbalancer.server.port=80"
networks:
- jitsimeet
- traefik
# XMPP server
prosody:
image: jitsi/prosody:{{ docker_jitsimeet_version }}
restart: always
expose:
- '5222'
- '5347'
- '5280'
volumes:
- {{ docker_jitsimeet_data_dir }}/{{ docker_jitsimeet_service_id }}/prosody/config:/config
- {{ docker_jitsimeet_data_dir }}/{{ docker_jitsimeet_service_id }}/prosody/prosody-plugins-custom:/prosody-plugins-custom
environment:
- PUBLIC_URL=https://{{ docker_jitsimeet_fqdn }}
- JICOFO_AUTH_PASSWORD={{ docker_jitsimeet_jicofo_auth_password }}
- JVB_AUTH_PASSWORD={{ docker_jitsimeet_jvb_auth_password }}
networks:
jitsimeet:
aliases:
- xmpp.meet.jitsi
# Focus component
jicofo:
image: jitsi/jicofo:{{ docker_jitsimeet_version }}
restart: always
volumes:
- {{ docker_jitsimeet_data_dir }}/{{ docker_jitsimeet_service_id }}/jicofo:/config
environment:
- JICOFO_AUTH_PASSWORD={{ docker_jitsimeet_jicofo_auth_password }}
depends_on:
- prosody
networks:
- jitsimeet
# Video bridge
jvb:
image: jitsi/jvb:{{ docker_jitsimeet_version }}
restart: always
ports:
- '10000:10000/udp'
- '127.0.0.1:8080:8080'
volumes:
- {{ docker_jitsimeet_data_dir }}/{{ docker_jitsimeet_service_id }}/jvb:/config
environment:
- PUBLIC_URL=https://{{ docker_jitsimeet_fqdn }}
- DOCKER_HOST_ADDRESS={{ docker_jitsimeet_jvb_host_address }}
- JVB_AUTH_PASSWORD={{ docker_jitsimeet_jvb_auth_password }}
depends_on:
- prosody
networks:
- jitsimeet
- jitsivideo
networks:
traefik:
external: true
jitsimeet:
internal: true
jitsivideo: