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

Freedom of the Press Foundation

À propos du projet

Installs Jitsi Meet videoconferencing software

Installer
ansible-galaxy install freedomofpress.jitsi-meet
Licence
Unknown
Téléchargements
155
Propriétaire
Defending and supporting cutting-edge transparency journalism in the face of adversity.