udelarinterior.jitsi_meet

jitsi-meet

Galaxy GitHub tag (latest by date) GitHub stars GitHub forks

Installe et configure le logiciel de vidéoconférence Jitsi Meet.

Exigences

Vous devez déjà avoir un DNS pointé vers le serveur et des clés SSL. Si vous n'avez pas encore de clés SSL pour le domaine, pensez à utiliser le rôle Ansible geerlingguy.certbot pour obtenir (gratuitement !) des certificats SSL de LetsEncrypt.

Vous devrez également ouvrir les ports 443 TCP et 10000 UDP pour que les composants Jitsi Meet fonctionnent. Ce rôle peut utiliser ufw pour permettre ces ports en définissant jitsi_meet_configure_firewall: true. Si vous utilisez une autre solution de pare-feu basée sur l'hôte comme iptables, gardez 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 de rôle

########################################
###### variables les plus importantes ###
# et que vous devez adapter à votre cas #
########################################

# Sans SSL, "localhost" est la valeur par défaut correcte. Si des informations SSL sont fournies,
# alors nous aurons besoin d'un vrai nom de domaine. Utilisation du FQDN déduit 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
# probablement un autre rôle gérera la configuration vhost.
jitsi_meet_server_name: "{{ ansible_fqdn | default('localhost') }}"

# Note de la documentation officielle :
# L'installateur vérifiera si Nginx ou Apache sont présents (dans cet ordre) et configurera
# un vhost dans le serveur web qu'il trouve pour servir Jitsi Meet. Si aucune des deux solutions
# n'est trouvée, cela défaut à Nginx. Si vous exécutez déjà Nginx sur le port 443 sur
# la même machine, il est préférable de sauter la configuration du turnserver car elle
# entrera en conflit avec votre port 443 actuel, utilisez donc la commande apt install --no-install-recommends jitsi-meet.
jitsi_meet_install_recommends: yes

# Si (jitsi_meet_install_recommends == no), le turnserver ne sera pas installé ni disponible
jitsi_meet_use_stun_turn: false

# Les serveurs STUN qui seront utilisés dans les connexions peer to peer
jitsi_meet_stun_servers:
  - 'meet-jit-si-turnrelay.jitsi.net:443'
  # - '{{ jitsi_meet_server_name }}:443'

# Activer le mode p2p
jitsi_meet_enable_p2p_mode: true

# Configurer nginx et jitsi-meet pour écouter également sur IPv6
jitsi_meet_ipv6_enable: true

# Cela vous permet de spécifier l'installation de jitsi meet en créant et configurant
# des certificats HTTPS auto-signés, qui peuvent ensuite être remplacés par des certificats Let's Encrypt
jitsi_meet_cert_choice: "Générer un nouveau certificat auto-signé (Vous aurez ensuite la possibilité d'obtenir un certificat Let's Encrypt)"
# En raison du comportement des scripts d'installation de Jitsi, il est recommandé de garder cette valeur, même si vous
# prévoyez d'utiliser vos propres certificats générés (par exemple, avec certbot). Vous pouvez le faire depuis ce rôle.

# NE pas les définir ici, car des chaînes vides pour des 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: ''

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

# Si vous le souhaitez, vous pouvez utiliser votre propre modèle jitsi_meet_nginx.conf.j2 indiquant un autre chemin.
jitsi_meet_nginx_config_template:  "jitsi_meet_nginx.conf.j2"


###########################################
# autres variables utiles pour personnaliser l #
# installation, mais moins fréquemment utilisées #
###########################################

# 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 vars, mais
# assurez-vous de garder les secrets en sécurité, par exemple avec ansible-vault ou credstash.
jitsi_meet_videobridge_secret: ''
jitsi_meet_jicofo_secret: ''
jitsi_meet_jicofo_password: ''

##################
### APT choses ###
# Liste des paquets qui doivent être installés avant jitsi meet.
jitsi_meet_base_packages:
  - apt-transport-https
  - debconf
  - debconf-utils

# Souhaitez-vous utiliser les versions nocturnes des composants Jitsi Meet ?
jitsi_meet_use_nightly_apt_repo: false

jitsi_meet_apt_repos:
  stable:
    repo_url: 'deb https://download.jitsi.org/ stable/'
  unstable:
    repo_url: 'deb https://download.jitsi.org unstable/'

jitsi_meet_apt_key_url: 'https://download.jitsi.org/jitsi-key.gpg.key'
jitsi_meet_apt_key_id: '66A9CD0595D6AFA247290D3BEF8B479E2DC1389C'

# Ces réglages debconf représentent les 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-serve
    value: "false"
    vtype: boolean
  - name: jitsi-meet-prosody
    question: jitsi-meet-prosody/jvb-hostname
    value: "{{ jitsi_meet_server_name }}"
    vtype: string
  - name: jitsi-videobridge
    question: jitsi-videobridge/jvb-hostname
    value: "{{ jitsi_meet_server_name }}"
    vtype: string
  - name: jitsi-meet-web-config
    question: jitsi-meet/cert-choice
    value: "{{ jitsi_meet_cert_choice }}"
    vtype: select
  - name: jitsi-meet-web-config
    question: jitsi-meet/cert-path-key
    value: "{{ jitsi_meet_ssl_key_path }}"
    vtype: string
  - name: jitsi-meet-web-config
    question: jitsi-meet/cert-path-crt
    value: "{{ jitsi_meet_ssl_cert_path }}"
    vtype: string


#######################
### Pare-feu du serveur ###
# Ce rôle peut installer et configurer automatiquement ufw avec les ouvertures de ports jitsi-meet en définissant cette variable sur true.
# Si vous gérez un pare-feu autrement, gardez cela à false, et les tâches ufw seront ignorées.
jitsi_meet_configure_firewall: false

# AVERTISSEMENT : jusqu'à la version 2.0.0 de ce rôle, le port SSH (22/tcp) était également activé.
# Ce rôle se concentre sur la configuration de Jitsi Meet, afin d'éviter de chevaucher le reste de
# vos rôles/playbooks, les valeurs par défaut ne seront que les ports nécessaires pour Jitsi.
jitsi_meet_firewall_ports_allow:
  tcp:
    # - "22" # SSH
    - "80"   # HTTP / Lets Encrypt
    - "443"  # HTTPS
  udp:
    - "10000" # Videobridge

### Autre pare-feu
# Cela configurera une connexion NATée à Jitsi Meet.
jitsi_meet_behind_nat_firewall: false
jitsi_meet_nat_private_ip: 127.0.0.1
jitsi_meet_nat_public_ip: 255.255.255.255


##############
### Jicofo ###
# Informations d'authentification par défaut, utilisées dans plusieurs modèles de service.
jitsi_meet_jicofo_user: focus
jitsi_meet_jicofo_port: 5347
# Les composants Jitsi utilisent les niveaux de journalisation Java standards. Voir :
# https://docs.oracle.com/javase/7/docs/api/java/util/logging/Level.html
# Lors de l'utilisation de l'agrégation des journaux pour les composants jitsi-meet, définissez sur "WARNING".
jitsi_meet_jicofo_loglevel: INFO

# Si vous le souhaitez, vous pouvez utiliser votre propre modèle de configuration jinja indiquant un autre chemin.
jitsi_meet_jicofo_config_template: jicofo_config.j2
jitsi_meet_jicofo_sip_template: jicofo_sip-communicator.properties.j2


###################
### Videobridge ###
# Le fichier de configuration par défaut à /etc/jitsi/videobridge/config indique 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
jitsi_meet_videobridge_loglevel: INFO
jitsi_meet_videobridge_opts: '--apis=,'            # liste séparée par des virgules '--apis=rest,'

jitsi_meet_videobridge_statistics_enable: true
jitsi_meet_videobridge_statistics_interval: 1000
jitsi_meet_videobridge_statistics_transport: 'muc' # liste séparée par des virgules : 'muc,colibri,xmpp'

# Configurer un proxy inverse pour publier colibri/stats sur HTTPS
# https://{{ jitsi_meet_server_name }}/colibri/stats
# VOUS DEVEZ ÉGALEMENT ACTIVER 'rest' dans jitsi_meet_videobridge_opts et
# 'colibri,xmpp' dans jitsi_meet_videobridge_statistics_transport.
jitsi_meet_expose_colibri_stats: false

# (Type dictionnaire) Autres identifiants de serveurs pour activer le mode MUC (Multi User Chat).
# https://github.com/jitsi/jitsi-videobridge/blob/master/doc/muc.md#legacy-videobridge-configuration
jitsi_meet_videobridge_other_xmpp_servers: {}
  # xmppserver1:
  #   hostname: exemple.net
  #   domain: auth.exemple.net
  #   username: jvb
  #   password: $PASSWORD
  #   muc_jids: [email protected]
  #   muc: [email protected]
  #   muc_nickname: unique-instance-id
  #   # disable_certificate_verification: true

# Si vous le souhaitez, vous pouvez utiliser votre propre modèle de configuration jinja indiquant un autre chemin.
jitsi_meet_videobridge_config_template:  videobridge_config.j2
jitsi_meet_videobridge_sip_template: videobridge_sip-communicator.properties.j2

############
### Meet ###
# "anonyme" permet à quiconque d'utiliser le serveur de vidéoconférence.
jitsi_meet_authentication: anonymous

# Ajout 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_enable_third_party_requests: true

# Configuration du 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_enable_desktop_sharing_chrome: true
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 du 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_enable_desktop_sharing_firefox: true
jitsi_meet_desktop_sharing_firefox_max_version_ext_required: '-1'

jitsi_meet_channel_last_n: -1
jitsi_meet_enable_layer_suspension: false
jitsi_meet_start_audio_only: false
jitsi_meet_show_audio_levels: false
jitsi_meet_audio_levels_interval: 200

jitsi_meet_resolution: 480
jitsi_meet_constraints_video_aspect_ratio: "16 / 9"
jitsi_meet_constraints_video_height_ideal: "{{ jitsi_meet_resolution }}"
jitsi_meet_constraints_video_height_max: 720
jitsi_meet_constraints_video_height_min: 240

# Si vous le souhaitez, vous pouvez utiliser votre propre modèle de configuration jinja indiquant un autre chemin.
jitsi_meet_config_js_template: jitsi_meet_config.js.j2
jitsi_meet_interface_config_js_template: interface_config.js.j2

###################
### Passerelle SIP ###
jitsi_meet_configure_sip_gateway: false
jitsi_meet_jigasi_account: [email protected]
jitsi_meet_jigasi_password: fdi49fndKjhe3

########################
### Personnalisation de l'interface utilisateur ###
jitsi_meet_customize_the_ui: false

jitsi_meet_lang: 'fr'
jitsi_meet_appname: 'Mon nom d\'application'
jitsi_meet_org_link: 'https://lien-vers-mon-organisme.com'
jitsi_meet_welcomepage_title: 'Vidéoconférence sécurisée, complète et totalement gratuite'
jitsi_meet_welcomepage_description: 'N’hésitez pas, discutez en vidéo avec toute l’équipe. En fait, invitez tout le monde que vous connaissez. __app__ est une solution de vidéoconférence entièrement cryptée, 100 % open source, que vous pouvez utiliser toute la journée, tous les jours, gratuitement - sans aucun compte requis.'

# Par défaut, c'est une chaîne vide car le fichier CSS est un fichier groupé pour
# l'ensemble du site, et il change très fréquemment à chaque version. Il ne sera
# remplacé que si vous avez un fichier CSS personnalisé et indiquez son chemin dans cette variable.
jitsi_meet_css_file: ''
jitsi_meet_welcome_page_additions_file: welcomePageAdditionalContent.html.j2
jitsi_meet_title_template: title.html.j2

jitsi_meet_favicon_file: images/favicon.ico
jitsi_meet_logo_file: images/jitsilogo.png
jitsi_meet_watermark_file: images/watermark.png

jitsi_meet_default_background: '#474747'
jitsi_meet_show_video_background: true
jitsi_meet_default_remote_display_name: 'Collègue Jitster'
jitsi_meet_default_local_display_name: 'moi'
jitsi_meet_generate_roomnames_on_welcome_page: true
jitsi_meet_lang_detection: false    # Permet à l'i18n de détecter la langue du système

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 a besoin de l'extension installée—les autres participants à la réunion pourront visualiser l'écran partagé sans rien installer. Vous devrez créer votre propre extension de navigateur pour Chrome et/ou Firefox. Consultez la documentation de Jidesha pour des instructions détaillées de construction. Ce rôle n'a été testé qu'avec des extensions Chrome personnalisées.

Les extensions installées depuis des sites non approuvés sont interdites par Chrome, vous devez donc télécharger directement le fichier .crx, puis naviguer vers chrome://extensions et faire un glisser-déposer de l'extension pour l'installer. Si vous souhaitez donner à un autre participant la possibilité de partager son é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 à geerlingguy.certbot pour des certificats SSL extrêmement simples.

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 apprécié par 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: geerlingguy.certbot
      become: yes
      certbot_create_if_missing: true
      certbot_admin_email: "webmaster@{{ jitsi_meet_server_name }}"
      certbot_certs:
        - domains:
            - "{{ jitsi_meet_server_name }}"
      certbot_create_standalone_stop_services: []

    - role: udelarinterior.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 de Molecule pour plus d'informations.

Licence

MIT

Informations sur l'auteur

Freedom of the Press Foundation, UdelaR Interior, @santiagomr

À propos du projet

Installs Jitsi Meet videoconferencing software

Installer
ansible-galaxy install udelarinterior.jitsi_meet
Licence
Unknown
Téléchargements
3.5k
Propriétaire
Red Unidades Informáticas de la UdelaR en el Interior