oneoffadmins.ansible_role_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 le domaine, envisagez d'utiliser l'excellent rôle Ansible thefinn93.letsencrypt pour obtenir des certificats SSL (gratuits !) de LetsEncrypt.

Vous devrez également exposer les ports 443 TCP et 10000 UDP pour que les composants de 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 telle qu'iptables, définissez jitsi_meet_configure_firewall: false. Si vous utilisez AWS ou similaire, vous devrez exposer 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 les définissez pas ici, car des chaînes vides pour des certificats personnalisés
# entraîneront le saut des tâches de configuration Nginx personnalisées.
jitsi_meet_ssl_cert_path: ''
jitsi_meet_ssl_key_path: ''

# Sans SSL, "localhost" est la valeur par défaut correcte. Si des informations SSL sont fournies,
# nous aurons besoin d'un vrai nom de domaine. En utilisant le 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 le FQDN, car
# vraisemblablement un autre rôle gérera la configuration 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 prise en charge, ce qui permet à quiconque d'utiliser le serveur de vidéoconférence.
jitsi_meet_authentication: anonymous

# L'installation du paquet Debian de 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 templating.
# Si vous souhaitez générer vos propres secrets et les utiliser, remplacez ces variables, 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 service.
jitsi_meet_jicofo_user: focus
jitsi_meet_jicofo_port: 5347

# Le fichier de configuration par défaut à /etc/jitsi/videobridge/config prétend que le port par défaut
# pour JVB est "5275", mais le guide d'installation manuelle fait référence à "5347".
# https://github.com/jitsi/jitsi-meet/blob/master/doc/manual-install.md
jitsi_meet_videobridge_port: 5347

# Si Jitsi Videobridge est derrière un NAT, définissez ces valeurs pour faire fonctionner ICE
jitsi_meet_videobridge_nat:
  local_ip: ''
  public_ip: ''

# Un ajout récent respectueux de la vie privée, voir 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 devrez construire et empaqueter une extension de navigateur
# spécifiquement 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 la 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 invites interactives lors de l'installation
# du paquet deb jitsi-meet. Si vous utilisez des certificats SSL personnalisés, vous devrez peut-être 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 ports jitsi-meet.
# Si vous gérez un pare-feu autrement, définissez cela sur false, et ufw sera ignoré.
jitsi_meet_configure_firewall: true

# Le rôle installera automatiquement nginx et configurera un vhost pour l'utilisation avec jitsi-meet.
# Si vous préférez gérer les vhosts web via un autre rôle, définissez cela sur false.
jitsi_meet_configure_nginx: true

Partage d'écran

Jitsi Meet prend en charge la fonctionnalité de partage d'écran via des extensions de navigateur. Seule la personne partageant l'écran doit avoir l'extension installée ; les autres participants à la réunion pourront voir l'écran partagé sans rien installer. Vous devrez construire votre propre extension de navigateur pour Chrome et/ou Firefox. Voir la documentation Jidesha pour des instructions de construction détaillées. Ce rôle n'a été testé qu'avec des extensions Chrome personnalisées.

Chrome interdit l'installation d'extensions à partir de sites non approuvés, vous devez donc télécharger directement le fichier .crx, puis naviguer vers chrome://extensions et faire glisser-déposer l'extension pour l'installer. Si vous souhaitez accorder à un autre participant le support du partage d'écran, partagez l'URL de l'extension avec lui via le chat texte de Jitsi Meet.

Dépendances

Ce n'est techniquement pas une dépendance, mais vous devriez consulter thefinn93.letsencrypt pour obtenir des certificats SSL incroyablement faciles.

Exemple de Playbook

Inclure un exemple d'utilisation de votre rôle (par exemple, avec des variables passées en tant que paramètres) est toujours agréable pour les utilisateurs :

- name: Configurer le serveur jitsi-meet.
  hosts: jitsi
  vars:
    # Changez cela pour correspondre à l'entrée DNS pour l'IP de votre 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

Voir la documentation Molecule pour plus d'informations.

Licence

MIT

Information sur l'auteur

Freedom of the Press Foundation

À propos du projet

Installs Jitsi Meet videoconferencing software

Installer
ansible-galaxy install oneoffadmins.ansible_role_jitsi_meet
Licence
Unknown
Téléchargements
98
Propriétaire