freedomofpress.jitsi-meet
jitsi-meet
Installiert und konfiguriert die Videokonferenz-Software Jitsi Meet.
Anforderungen
Sie sollten bereits DNS auf den Server zeigen und SSL-Schlüssel haben. Wenn Sie noch keine SSL-Schlüssel für die Domain haben, sollten Sie das hervorragende Ansible-Roll thefinn93.letsencrypt verwenden, um (kostenlose!) SSL-Zertifikate von LetsEncrypt zu erhalten.
Sie müssen auch die Ports 443 TCP und 10000 UDP freigeben, damit die Jitsi Meet-Komponenten funktionieren. Standardmäßig verwendet die Rolle ufw
, um diese Ports zuzulassen. Wenn Sie eine andere Host-basierte Firewall-Lösung wie iptables verwenden, setzen Sie jitsi_meet_configure_firewall: false
. Wenn Sie AWS oder Ähnliches verwenden, müssen Sie diese Ports in der zugehörigen Sicherheitsgruppe freigeben.
Rollen-Variablen
# Die Standardzertifikatsdateien sind /var/lib/prosody/localhost.{crt,key}
# Sie werden hier nicht gesetzt, da leere Strings für benutzerdefinierte Zertifikate die
# benutzerdefinierten Nginx-Konfigurationsaufgaben überspringen würden.
jitsi_meet_ssl_cert_path: ''
jitsi_meet_ssl_key_path: ''
# Ohne SSL ist "localhost" der korrekte Standard. Wenn SSL-Informationen bereitgestellt werden,
# benötigen wir einen echten Domainnamen. Es wird der von Ansible abgeleitete FQDN verwendet, aber Sie
# können den Variablenwert ausdrücklich festlegen, wenn Sie einen kürzeren Hostnamen verwenden.
# Wenn die automatische Nginx-Konfiguration deaktiviert ist, verwenden Sie ebenfalls den FQDN, da
# voraussichtlich eine andere Rolle die vhost-Konfiguration verwaltet.
jitsi_meet_server_name: "{{ ansible_fqdn if (jitsi_meet_ssl_cert_path or not jitsi_meet_configure_nginx) else 'localhost' }}"
# Nur "anonyme" Authentifizierung wird unterstützt, die es jedem ermöglicht, den Videokonferenzserver zu verwenden.
jitsi_meet_authentication: anonymous
# Die Debian-Paketinstallation von jitsi-meet generiert Geheimnisse für die Komponenten.
# Die Rolle liest die Konfigurationsdatei und bewahrt die Geheimnisse auch beim Templating.
# Wenn Sie Ihre eigenen Geheimnisse generieren und diese verwenden möchten, überschreiben Sie diese Variablen,
# aber stellen Sie sicher, die Geheimnisse sicher zu speichern, z.B. mit ansible-vault oder credstash.
jitsi_meet_videobridge_secret: ''
jitsi_meet_jicofo_secret: ''
jitsi_meet_jicofo_password: ''
# Standard-Authentifizierungsinformationen, die in mehreren Servicetemplates verwendet werden.
jitsi_meet_jicofo_user: focus
jitsi_meet_jicofo_port: 5347
# Die Standardkonfigurationsdatei unter /etc/jitsi/videobridge/config beansprucht, dass der Standardport
# für JVB "5275" ist, aber das Handbuch verweist auf "5347".
# https://github.com/jitsi/jitsi-meet/blob/master/doc/manual-install.md
jitsi_meet_videobridge_port: 5347
# Eine aktuelle, 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_disable_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_desktop_sharing_chrome_ext_id: 'diibjkoicjeejcmhdnailmkgecihlobk'
# Pfad zur lokalen Erweiterung auf der Festplatte, zum Kopieren auf den Zielhost. Der entfernte Dateiname
# wird der Basisname des hier angegebenen Pfads sein.
jitsi_meet_desktop_sharing_chrome_extension_filename: ''
# Bildschirmfreigabekonfiguration für Firefox. Setzen Sie max_version auf '42' und disabled auf 'false',
# wenn Sie Bildschirmfreigabe unter Firefox verwenden möchten.
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'
# Diese debconf-Einstellungen stellen Antworten auf interaktive Eingabeaufforderungen während
# der Installation des jitsi-meet deb-Pakets dar. 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-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
# Die Rolle installiert automatisch und konfiguriert ufw mit Jitsi Meet-Portfreigaben.
# Wenn Sie eine Firewall anderweitig verwalten, setzen Sie dies auf false, und ufw wird übersprungen.
jitsi_meet_configure_firewall: true
# Die Rolle installiert automatisch nginx und konfiguriert einen vhost zur Verwendung mit Jitsi Meet.
# Wenn Sie die Verwaltung von Web-vhosts über eine separate Rolle bevorzugen, setzen Sie dies auf false.
jitsi_meet_configure_nginx: true
Bildschirmfreigabe
Jitsi Meet unterstützt die Bildschirmfreigabefunktion über Browsererweiterungen. Nur die Person, die den Bildschirm teilt, muss die Erweiterung installiert haben – andere Teilnehmer in der Sitzung können den freigegebenen Bildschirm ohne Installation ansehen. Sie müssen Ihre eigene Browsererweiterung für Chrome und/oder Firefox erstellen. Siehe die Jidesha-Dokumentation für detaillierte Anweisungen. Diese Rolle wurde nur mit benutzerdefinierten Chrome-Erweiterungen getestet.
Chrome verbietet die Installation von Erweiterungen von nicht genehmigten Websites, daher müssen Sie
die .crx
-Datei direkt herunterladen und dann zu chrome://extensions
navigieren und die Erweiterung per Drag & Drop installieren. Wenn Sie einem anderen Teilnehmer Unterstützung bei der Bildschirmfreigabe gewähren möchten, teilen Sie den URL für die Erweiterung über das Jitsi Meet-Textchat-Fenster mit.
Abhängigkeiten
Es ist technisch nicht eine Abhängigkeit, aber Sie sollten thefinn93.letsencrypt für unglaublich einfache SSL-Zertifikate in Betracht ziehen.
Beispiel-Playbook
Ein Beispiel, wie man Ihre Rolle benutzt (zum Beispiel mit Variablen, die als Parameter übergeben werden), ist immer gut für Benutzer:
- name: Jitsi-Meet-Server konfigurieren.
hosts: jitsi
vars:
# Ändern Sie dies, um dem DNS-Eintrag für Ihre Host-IP zu entsprechen.
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
Tests ausführen
Diese Rolle verwendet Molecule und ServerSpec für Tests. Um sie 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
ansible-galaxy install freedomofpress.jitsi-meet