freedomofpress.jitsi-meet
jitsi-meet
Installe et configure le logiciel de vidéoconférence Jitsi Meet.
Exigences
Vous devez déjà avoir un DNS pointant vers le serveur et des clés SSL. Si vous n'avez pas encore de clés SSL pour votre domaine, envisagez d'utiliser l'excellent rôle Ansible thefinn93.letsencrypt pour obtenir des certificats SSL (gratuits !) de LetsEncrypt.
Vous devrez également ouvrir les ports 443 TCP et 10000 UDP pour que les composants Jitsi Meet fonctionnent. Par défaut, le rôle utilisera ufw
pour autoriser ces ports. Si vous utilisez une autre solution de pare-feu basée sur l'hôte comme iptables, mettez jitsi_meet_configure_firewall: false
. Si vous utilisez AWS ou un service similaire, vous devrez ouvrir ces ports dans le groupe de sécurité associé.
Variables du rôle
# Les fichiers de certificat par défaut sont /var/lib/prosody/localhost.{crt,key}
# Ne pas les définir ici, car les chaînes vides pour les certificats personnalisés
# entraîneront le saut des tâches de configuration personnalisée de Nginx.
jitsi_meet_ssl_cert_path: ''
jitsi_meet_ssl_key_path: ''
# Sans SSL, "localhost" est le bon choix par défaut. Si des informations SSL sont fournies,
# nous aurons besoin d'un vrai nom de domaine. Utilisation du FQDN inféré par Ansible, mais vous
# pouvez définir la valeur de la variable explicitement si vous utilisez un nom d'hôte plus court.
# Si la configuration automatique de Nginx est désactivée, utilisez également FQDN, car
# un autre rôle gérera la configuration du vhost.
jitsi_meet_server_name: "{{ ansible_fqdn if (jitsi_meet_ssl_cert_path or not jitsi_meet_configure_nginx) else 'localhost' }}"
# Seule l'authentification "anonyme" est supportée, ce qui permet à quiconque d'utiliser le serveur de vidéoconférence.
jitsi_meet_authentication: anonymous
# L'installation du paquet Debian jitsi-meet générera des secrets pour les composants.
# Le rôle lira le fichier de configuration et préservera les secrets même lors du
# remplissage. Si vous souhaitez générer vos propres secrets et les utiliser, remplacez ces vars,
# mais assurez-vous de stocker les secrets en toute sécurité, par exemple avec ansible-vault ou credstash.
jitsi_meet_videobridge_secret: ''
jitsi_meet_jicofo_secret: ''
jitsi_meet_jicofo_password: ''
# Informations d'authentification par défaut, utilisées dans plusieurs modèles de services.
jitsi_meet_jicofo_user: focus
jitsi_meet_jicofo_port: 5347
# Le fichier de configuration par défaut à /etc/jitsi/videobridge/config affirme que le port par défaut
# pour JVB est "5275", mais le guide d'installation manuel fait référence à "5347".
# https://github.com/jitsi/jitsi-meet/blob/master/doc/manual-install.md
jitsi_meet_videobridge_port: 5347
# Un ajout récent respectueux de la vie privée, voyez ici pour plus de détails :
# https://github.com/jitsi/jitsi-meet/issues/422
# https://github.com/jitsi/jitsi-meet/pull/427
jitsi_meet_disable_third_party_requests: true
# Configuration de partage d'écran pour Chrome. Vous aurez besoin de créer et de packager une extension de navigateur
# spécialement pour votre domaine ; voir https://github.com/jitsi/jidesha
jitsi_meet_desktop_sharing_chrome_method: 'ext'
jitsi_meet_desktop_sharing_chrome_ext_id: 'diibjkoicjeejcmhdnailmkgecihlobk'
# Chemin vers l'extension locale sur le disque, pour copie vers l'hôte cible. Le nom de fichier distant
# sera le nom de base du chemin fourni ici.
jitsi_meet_desktop_sharing_chrome_extension_filename: ''
# Configuration de partage d'écran pour Firefox. Définissez max_version sur '42' et disabled sur 'false'
# si vous souhaitez utiliser le partage d'écran sous Firefox.
jitsi_meet_desktop_sharing_firefox_ext_id: 'null'
jitsi_meet_desktop_sharing_firefox_disabled: true
jitsi_meet_desktop_sharing_firefox_max_version_ext_required: '-1'
# Ces paramètres debconf représentent des réponses aux questions interactives pendant l'installation
# du paquet deb jitsi-meet. Si vous utilisez des certificats SSL personnalisés, vous pourriez devoir définir plus d'options.
jitsi_meet_debconf_settings:
- name: jitsi-meet
question: jitsi-meet/jvb-hostname
value: "{{ jitsi_meet_server_name }}"
vtype: string
- name: jitsi-meet
question: jitsi-meet/jvb-serve
value: "false"
vtype: boolean
- name: jitsi-meet-prosody
question: jitsi-meet-prosody/jvb-hostname
value: "{{ jitsi_meet_server_name }}"
vtype: string
# Le rôle installera automatiquement et configurera ufw avec les trous pour jitsi-meet.
# Si vous gérez un pare-feu autrement, mettez ceci à false et ufw sera ignoré.
jitsi_meet_configure_firewall: true
# Le rôle installera automatiquement nginx et configurera un vhost à utiliser avec jitsi-meet.
# Si vous préférez gérer les vhosts web par un rôle séparé, mettez ceci à false.
jitsi_meet_configure_nginx: true
Partage d'écran
Jitsi Meet prend en charge la fonction de partage d'écran via des extensions de navigateur. Seule la personne partageant son écran doit avoir l'extension installée—les autres participants à la réunion pourront voir l'écran partagé sans installer quoi que ce soit. Vous devrez créer votre propre extension de navigateur pour Chrome et/ou Firefox. Consultez la documentation Jidesha pour des instructions détaillées de construction. Ce rôle a uniquement été testé avec des extensions Chrome personnalisées.
Chrome interdit l'installation d'extensions provenant de sites non approuvés, donc vous devez
télécharger le fichier .crx
directement, puis naviguer vers chrome://extensions
et
désinstaller en faisant glisser l'extension pour l'installer. Si vous souhaitez accorder à un autre
participant le support de partage d'écran, partagez l'URL de l'extension avec lui
via le panneau de chat textuel de Jitsi Meet.
Dépendances
Ce n'est techniquement pas une dépendance, mais vous devriez jeter un œil à thefinn93.letsencrypt pour des certificats SSL incroyablement faciles à obtenir.
Exemple de Playbook
Inclure un exemple de la façon d'utiliser votre rôle (par exemple, avec des variables passées en paramètres) est toujours appréciable pour les utilisateurs :
- name: Configurer le serveur jitsi-meet.
hosts: jitsi
vars:
# Changez ceci pour correspondre à l'entrée DNS pour votre IP d'hôte.
jitsi_meet_server_name: meet.example.com
roles:
- role: thefinn93.letsencrypt
become: yes
letsencrypt_email: "webmaster@{{ jitsi_meet_server_name }}"
letsencrypt_cert_domains:
- "{{ jitsi_meet_server_name }}"
tags: letsencrypt
- role: ansible-role-jitsi-meet
jitsi_meet_ssl_cert_path: "/etc/letsencrypt/live/{{ jitsi_meet_server_name }}/fullchain.pem"
jitsi_meet_ssl_key_path: "/etc/letsencrypt/live/{{ jitsi_meet_server_name }}/privkey.pem"
become: yes
tags: jitsi
Exécution des tests
Ce rôle utilise Molecule et ServerSpec pour les tests. Pour l'utiliser :
pip install molecule
gem install serverspec
molecule test
Vous pouvez également exécuter des commandes sélectives :
molecule idempotence
molecule verify
Consultez la documentation Molecule pour plus d'informations.
Licence
MIT
Informations sur l'auteur
ansible-galaxy install freedomofpress.jitsi-meet