udelarinterior.jitsi_meet
jitsi-meet
Installiert und konfiguriert die Videokonferenz-Software Jitsi Meet.
Anforderungen
Sie sollten bereits einen DNS-Eintrag auf den Server zeigen haben und SSL-Schlüssel besitzen. Wenn Sie noch keine SSL-Schlüssel für die Domain haben, sollten Sie die geerlingguy.certbot Ansible-Rolle verwenden, um kostenlose SSL-Zertifikate von LetsEncrypt zu erhalten.
Sie müssen auch die Ports 443 TCP und 10000 UDP öffnen, damit die Jitsi Meet-Komponenten funktionieren. Diese Rolle kann ufw
verwenden, um diese Ports zuzulassen, indem Sie jitsi_meet_configure_firewall: true
setzen. Wenn Sie eine andere hostbasierte Firewall-Lösung wie iptables verwenden, lassen Sie jitsi_meet_configure_firewall: false
. Wenn Sie AWS oder ähnliches nutzen, müssen Sie diese Ports in der zugehörigen Sicherheitsgruppe freigeben.
Rollenvariablen
########################################
###### Wichtigste Variablen ###########
# und die Sie an Ihren Fall anpassen müssen #
########################################
# Ohne SSL ist "localhost" der richtige Standard. Wenn SSL-Informationen bereitgestellt werden,
# benötigen wir einen echten Domainnamen. Verwenden Sie Ansible's inferiertes FQDN, aber Sie
# können den Variablenwert explizit setzen, wenn Sie einen kürzeren Hostnamen verwenden.
# Wenn die automatische Nginx-Konfiguration deaktiviert ist, verwenden Sie ebenfalls FQDN, da
# vermutlich eine andere Rolle die vhost-Konfiguration verwaltet.
jitsi_meet_server_name: "{{ ansible_fqdn | default('localhost') }}"
# Hinweis aus der offiziellen Dokumentation:
# Der Installer prüft, ob Nginx oder Apache vorhanden ist (in dieser Reihenfolge) und konfiguriert
# einen virtuellen Host im Webserver, den er findet, um Jitsi Meet bereitzustellen. Wenn keiner von
# beiden gefunden wird, wird standardmäßig Nginx verwendet. Wenn Sie bereits Nginx auf Port 443 auf
# demselben Rechner ausführen, sollten Sie die Konfiguration des TURN-Servers überspringen, da es mit
# Ihrem aktuellen Port 443 in Konflikt geraten könnte. Verwenden Sie daher den Befehl apt install
# --no-install-recommends jitsi-meet.
jitsi_meet_install_recommends: yes
# Wenn (jitsi_meet_install_recommends == no), wird der TURN-Server nicht installiert und verfügbar sein.
jitsi_meet_use_stun_turn: false
# Die STUN-Server, die in den Peer-to-Peer-Verbindungen verwendet werden.
jitsi_meet_stun_servers:
- 'meet-jit-si-turnrelay.jitsi.net:443'
# - '{{ jitsi_meet_server_name }}:443'
# Aktivieren Sie den P2P-Modus.
jitsi_meet_enable_p2p_mode: true
# Konfigurieren Sie Nginx und jitsi-meet so, dass auch IPv6 zugehört wird.
jitsi_meet_ipv6_enable: true
# Es ermöglicht Ihnen, die Installation von Jitsi Meet zu spezifizieren, indem Sie
# selbstsignierte HTTPS-Zertifikate erstellen und konfigurieren, die dann durch Let's Encrypt-Zertifikate ersetzt werden können.
jitsi_meet_cert_choice: "Erstellen Sie ein neues selbstsigniertes Zertifikat (Sie werden später die Möglichkeit haben, ein Let's Encrypt-Zertifikat zu erhalten)"
# Aufgrund des Verhaltens der Jitsi-Installationsskripte wird empfohlen, diesen Wert beizubehalten, auch wenn Sie
# planen, Ihre eigenen generierten Zertifikate (zum Beispiel mit certbot) zu verwenden. Sie können dies aus dieser Rolle tun.
# WIR setzen sie hier NICHT, weil leere Strings für benutzerdefinierte Zertifikate
# dazu führen, dass die benutzerdefinierten Nginx-Konfigurationsaufgaben übersprungen werden.
jitsi_meet_ssl_cert_path: ''
jitsi_meet_ssl_key_path: ''
#############
### NGINX ###
# Diese Rolle konfiguriert automatisch einen Nginx-Vhost für die Verwendung mit jitsi-meet.
# Wenn Sie Ihre Web-VHosts über eine separate Rolle verwalten möchten, setzen Sie dies auf false.
jitsi_meet_configure_nginx: true
# Wenn Sie möchten, können Sie Ihre eigene jitsi_meet_nginx.conf.j2-Vorlage verwenden, die einen anderen Pfad angibt.
jitsi_meet_nginx_config_template: "jitsi_meet_nginx.conf.j2"
###########################################
# andere nützliche Variablen zur Anpassung #
# der Installation, aber weniger häufig verwendet #
###########################################
# Die Debian-Paketinstallation von jitsi-meet generiert Geheimnisse für die Komponenten.
# Die Rolle liest die Konfigurationsdatei und bewahrt die Geheimnisse sogar beim Template.
# Wenn Sie Ihre eigenen Geheimnisse generieren und verwenden möchten, überschreiben Sie diese Variablen,
# aber stellen Sie sicher, dass Sie die Geheimnisse sicher speichern, z.B. mit ansible-vault oder credstash.
jitsi_meet_videobridge_secret: ''
jitsi_meet_jicofo_secret: ''
jitsi_meet_jicofo_password: ''
##################
### APT Dinge ###
# Liste von Paketen, die vor jitsi meet installiert werden müssen.
jitsi_meet_base_packages:
- apt-transport-https
- debconf
- debconf-utils
# Ob die nächtlichen Builds der Jitsi Meet-Komponenten verwendet werden sollen.
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'
# Diese debconf-Einstellungen repräsentieren Antworten auf interaktive Eingabeaufforderungen während der Installation
# des jitsi-meet deb-Pakets. Wenn Sie benutzerdefinierte SSL-Zertifikate verwenden, müssen Sie möglicherweise weitere Optionen festlegen.
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
#######################
### Server-Firewall ###
# Diese Rolle kann automatisch UFW mit Jitsi Meet-Portlöchern installieren und konfigurieren, indem Sie diese Variable auf true setzen.
# Wenn Sie eine andere Firewall verwalten, setzen Sie es auf false, und UFW-Aufgaben werden übersprungen.
jitsi_meet_configure_firewall: false
# WARNUNG: bis zur Version 2.0.0 dieser Rolle war auch der SSH-Port (22/tcp) aktiviert.
# Diese Rolle konzentriert sich auf die Konfiguration von Jitsi Meet, daher werden die Standardwerte nur die notwendigen Ports für Jitsi enthalten.
jitsi_meet_firewall_ports_allow:
tcp:
# - "22" # SSH
- "80" # HTTP / Lets Encrypt
- "443" # HTTPS
udp:
- "10000" # Videobridge
### Andere Firewall
# Dies konfiguriert eine NAT-Verbindung zu 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 ###
# Standard-Authentifizierungsinformationen, die in mehreren Dienste-Vorlagen verwendet werden.
jitsi_meet_jicofo_user: focus
jitsi_meet_jicofo_port: 5347
# Die Jitsi-Komponenten verwenden die standardmäßigen Java-Protokolle (Loglevels), siehe:
# https://docs.oracle.com/javase/7/docs/api/java/util/logging/Level.html
# Wenn Sie Protokollaggregation für Jitsi Meet-Komponenten verwenden, setzen Sie es auf "WARNING".
jitsi_meet_jicofo_loglevel: INFO
# Wenn Sie möchten, können Sie Ihre eigene Jinja-Konfigurationsvorlage verwenden, die einen anderen Pfad angibt.
jitsi_meet_jicofo_config_template: jicofo_config.j2
jitsi_meet_jicofo_sip_template: jicofo_sip-communicator.properties.j2
###################
### Videobridge ###
# Die Standardkonfigurationsdatei unter /etc/jitsi/videobridge/config behauptet, der Standardport
# für JVB sei "5275", aber der handbuch-installationsanleitung verweist auf "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=,' # durch Komma getrennte Liste '--apis=rest,'
jitsi_meet_videobridge_statistics_enable: true
jitsi_meet_videobridge_statistics_interval: 1000
jitsi_meet_videobridge_statistics_transport: 'muc' # durch Komma getrennte Liste: 'muc,colibri,xmpp'
# Konfigurieren Sie das Reverse Proxy, um colibri/stats über HTTPS bereitzustellen
# https://{{ jitsi_meet_server_name }}/colibri/stats
# SIE SOLLTEN AUCH 'rest' in jitsi_meet_videobridge_opts und
# 'colibri,xmpp' in jitsi_meet_videobridge_statistics_transport AKTIVIEREN.
jitsi_meet_expose_colibri_stats: false
# (Dictionary-Typ) Andere Serveranmeldeinformationen, um den MUC (Multi User Chat) Modus zu aktivieren.
# https://github.com/jitsi/jitsi-videobridge/blob/master/doc/muc.md#legacy-videobridge-configuration
jitsi_meet_videobridge_other_xmpp_servers: {}
# xmppserver1:
# hostname: example.net
# domain: auth.example.net
# username: jvb
# password: $PASSWORD
# muc_jids: [email protected]
# muc: [email protected]
# muc_nickname: unique-instance-id
# # disable_certificate_verification: true
# Wenn Sie möchten, können Sie Ihre eigene Jinja-Konfigurationsvorlage verwenden, die einen anderen Pfad angibt.
jitsi_meet_videobridge_config_template: videobridge_config.j2
jitsi_meet_videobridge_sip_template: videobridge_sip-communicator.properties.j2
############
### Meet ###
# "anonymous" erlaubt es jedem, den Videokonferenz-Server zu benutzen.
jitsi_meet_authentication: anonymous
# Datenschutzfreundliche Ergänzung, siehe hier für Details:
# https://github.com/jitsi/jitsi-meet/issues/422
# https://github.com/jitsi/jitsi-meet/pull/427
jitsi_meet_enable_third_party_requests: true
# Bildschirmfreigabekonfiguration für Chrome. Sie müssen eine Browsererweiterung speziell für Ihre Domain erstellen und verpacken; siehe 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'
# Pfad zur lokalen Erweiterung auf der Festplatte, zum Kopieren auf den Zielhost. Der Remote-Dateiname
# wird der Basisname des bereitgestellten Pfades sein.
jitsi_meet_desktop_sharing_chrome_extension_filename: ''
# Bildschirmfreigabekonfiguration für Firefox. Setzen Sie max_version auf '42' und disabled auf 'false',
# wenn Sie die Bildschirmfreigabe unter Firefox verwenden möchten.
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
# Wenn Sie möchten, können Sie Ihre eigene Jinja-Konfigurationsvorlage verwenden, die einen anderen Pfad angibt.
jitsi_meet_config_js_template: jitsi_meet_config.js.j2
jitsi_meet_interface_config_js_template: interface_config.js.j2
###################
### SIP-Gateway ###
jitsi_meet_configure_sip_gateway: false
jitsi_meet_jigasi_account: [email protected]
jitsi_meet_jigasi_password: fdi49fndKjhe3
########################
### UI-Anpassung ###
jitsi_meet_customize_the_ui: false
jitsi_meet_lang: 'en'
jitsi_meet_appname: 'Mein Anwendungsname'
jitsi_meet_org_link: 'https://link-zu-meiner-organisation.com'
jitsi_meet_welcomepage_title: 'Sichere, voll ausgestattete und vollkommen kostenlose Videokonferenzen'
jitsi_meet_welcomepage_description: 'Machen Sie weiter, videochatten Sie mit dem gesamten Team. Tatsächlich, laden Sie jeden ein, den Sie kennen. __app__ ist eine vollständig verschlüsselte, 100% Open-Source-Videokonferenzlösung, die Sie den ganzen Tag, jeden Tag kostenlos nutzen können – ohne Konto erforderlich.'
# Standardmäßig ist es ein leerer String, weil die CSS-Datei eine gebündelte Datei für
# die gesamte Seite ist, und sie sich mit jeder Veröffentlichung sehr häufig ändert. Sie wird nur
# ersetzt, wenn Sie eine benutzerdefinierte CSS-Datei haben und ihren Pfad in dieser Variablen angeben.
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: 'Fellow Jitster'
jitsi_meet_default_local_display_name: 'ich'
jitsi_meet_generate_roomnames_on_welcome_page: true
jitsi_meet_lang_detection: false # Erlauben Sie der i18n, die Systemsprache zu erkennen.
Bildschirmfreigabe
Jitsi Meet unterstützt die Funktionalität zur Bildschirmfreigabe über Browsererweiterungen. Nur die Partei, die den Bildschirm teilt, muss die Erweiterung installiert haben – andere Teilnehmer in der Besprechung können den freigegebenen Bildschirm ohne Installation von etwas sehen. Sie müssen Ihre eigene Browsererweiterung für Chrome und/oder Firefox erstellen. Siehe die Jidesha Dokumentation für detaillierte Build-Anweisungen. Diese Rolle wurde nur mit benutzerdefinierten Chrome-Erweiterungen getestet.
Abhängigkeiten
Es ist technisch gesehen keine Abhängigkeit, aber Sie sollten sich geerlingguy.certbot für erstaunlich einfache SSL-Zertifikate anschauen.
Beispiel-Playbook
Hier ein Beispiel, wie Sie Ihre Rolle verwenden können (z.B. mit übergebenen Variablen als Parameter):
- name: Jitsi-Meet-Server konfigurieren.
hosts: jitsi
vars:
# Ändern Sie dies, um mit dem DNS-Eintrag für Ihre Host-IP übereinzustimmen.
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
Tests ausführen
Diese Rolle verwendet Molecule und ServerSpec zum Testen. Um es zu verwenden:
pip install molecule
gem install serverspec
molecule test
Sie können auch selektive Befehle ausführen:
molecule idempotence
molecule verify
Siehe die Molecule-Dokumentation für weitere Informationen.
Lizenz
MIT
Autoreninformation
Freedom of the Press Foundation, UdelaR Interior, @santiagomr
Installs Jitsi Meet videoconferencing software
ansible-galaxy install udelarinterior.jitsi_meet