udelarinterior.jitsi_meet

jitsi-meet

Galaxy GitHub Tag (latest by date) GitHub Sterne GitHub Forks

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

Über das Projekt

Installs Jitsi Meet videoconferencing software

Installieren
ansible-galaxy install udelarinterior.jitsi_meet
Lizenz
Unknown
Downloads
3.5k
Besitzer
Red Unidades Informáticas de la UdelaR en el Interior