oneoffadmins.ansible_role_jitsi_meet
jitsi-meet
Instaluje i konfiguruje oprogramowanie do wideokonferencji Jitsi Meet.
Wymagania
Musisz już mieć DNS skierowany na serwer oraz klucze SSL. Jeśli nie masz jeszcze kluczy SSL dla domeny, rozważ użycie doskonałej roli Ansible thefinn93.letsencrypt, aby uzyskać (bezpłatne!) certyfikaty SSL od LetsEncrypt.
Będziesz także musiał otworzyć porty 443 TCP i 10000 UDP, aby komponenty Jitsi Meet działały. Domyślnie rola użyje ufw
, aby zezwolić na te porty. Jeśli używasz innego rozwiązania zapory opartej na hoście, takiego jak iptables, ustaw jitsi_meet_configure_firewall: false
. Jeśli korzystasz z AWS lub podobnego, musisz otworzyć te porty w związanym Grupie Bezpieczeństwa.
Zmienne roli
# Domyślne pliki certyfikatów to /var/lib/prosody/localhost.{crt,key}
# Nie ustawiamy ich tutaj, ponieważ puste ciągi dla niestandardowych certyfikatów spowodują
# pominięcie zadań konfiguracyjnych customowego Nginx.
jitsi_meet_ssl_cert_path: ''
jitsi_meet_ssl_key_path: ''
# Bez SSL, "localhost" to poprawny domyślny. Jeśli podano informacje SSL,
# potrzebna będzie rzeczywista nazwa domeny. Używamy FQDN wnioskowanego przez Ansible,
# ale możesz również ustawić wartość zmiennej jawnie, jeśli używasz krótszej nazwy hosta.
# Jeśli automatyczna konfiguracja Nginx jest wyłączona, również użyj FQDN, ponieważ przypuszczalnie
# inna rola będzie zarządzać konfiguracją vhost.
jitsi_meet_server_name: "{{ ansible_fqdn if (jitsi_meet_ssl_cert_path or not jitsi_meet_configure_nginx) else 'localhost' }}"
# Obsługiwana jest tylko autoryzacja "anonimowa", która pozwala każdemu korzystać z serwera wideokonferencyjnego.
jitsi_meet_authentication: anonymous
# Instalacja pakietu Debian jitsi-meet wygeneruje sekrety dla komponentów.
# Rola odczyta plik konfiguracyjny i zachowa sekrety nawet podczas szablonowania.
# Jeśli chcesz wygenerować własne sekrety i używać ich, nadpisz te zmienne,
# ale upewnij się, że przechowujesz sekrety bezpiecznie, np. za pomocą ansible-vault lub credstash.
jitsi_meet_videobridge_secret: ''
jitsi_meet_jicofo_secret: ''
jitsi_meet_jicofo_password: ''
# Domyślne informacje o autoryzacji, używane w wielu szablonach serwisów.
jitsi_meet_jicofo_user: focus
jitsi_meet_jicofo_port: 5347
# Domyślny plik konfiguracyjny w /etc/jitsi/videobridge/config twierdzi, że domyślny port
# dla JVB to "5275", ale przewodnik instalacyjny odnosi się do "5347".
# https://github.com/jitsi/jitsi-meet/blob/master/doc/manual-install.md
jitsi_meet_videobridge_port: 5347
# Jeśli Jitsi Videobridge jest za NAT, ustaw te wartości, aby ICE działało.
jitsi_meet_videobridge_nat:
local_ip: ''
public_ip: ''
# Niedawno dodana funkcjonalność przyjazna dla prywatności, szczegóły tutaj:
# https://github.com/jitsi/jitsi-meet/issues/422
# https://github.com/jitsi/jitsi-meet/pull/427
jitsi_meet_disable_third_party_requests: true
# Konfiguracja udostępniania ekranu dla Chrome. Musisz zbudować i zapakować
# rozszerzenie przeglądarki specjalnie dla swojej domeny; zobacz https://github.com/jitsi/jidesha
jitsi_meet_desktop_sharing_chrome_method: 'ext'
jitsi_meet_desktop_sharing_chrome_ext_id: 'diibjkoicjeejcmhdnailmkgecihlobk'
# Ścieżka do lokalnego rozszerzenia na dysku, do skopiowania na docelowy host. Zdalna nazwa pliku
# będzie nazwą podstawową dostarczonej tutaj ścieżki.
jitsi_meet_desktop_sharing_chrome_extension_filename: ''
# Konfiguracja udostępniania ekranu dla Firefox. Ustaw max_version na '42' i disabled na 'false'
# jeśli chcesz używać udostępniania ekranu w Firefoksie.
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'
# Te ustawienia debconf reprezentują odpowiedzi na interaktywne pytania podczas instalacji
# pakietu deb jitsi-meet. Jeśli używasz niestandardowych certyfikatów SSL, możesz musieć ustawić więcej opcji.
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
# Rola automatycznie zainstaluje i skonfiguruje ufw z portami jitsi-meet.
# Jeśli zarządzasz zaporą w inny sposób, ustaw to na false, a ufw zostanie pominięty.
jitsi_meet_configure_firewall: true
# Rola automatycznie zainstaluje nginx i skonfiguruje vhost do użycia z jitsi-meet.
# Jeśli wolisz zarządzać vhostami internetowymi za pomocą osobnej roli, ustaw to na false.
jitsi_meet_configure_nginx: true
Udostępnianie ekranu
Jitsi Meet obsługuje funkcję udostępniania ekranu za pomocą rozszerzeń przeglądarki. Tylko osoba udostępniająca ekran musi mieć zainstalowane rozszerzenie - inni uczestnicy spotkania będą mogli oglądać udostępniany ekran bez instalowania czegokolwiek. Musisz zbudować własne rozszerzenie przeglądarki dla Chrome i/lub Firefox. Zobacz dokumentację Jidesha dla szczegółowych instrukcji dotyczących budowy. Ta rola była testowana tylko z niestandardowymi rozszerzeniami Chrome.
Chrome zabrania instalacji rozszerzeń z niezatwierdzonych stron, więc musisz
pobrać plik .crx
bezpośrednio, a następnie przejść do chrome://extensions
i przeciągnąć rozszerzenie, aby je zainstalować. Jeśli chcesz przyznać innemu uczestnikowi wsparcie w zakresie udostępniania ekranu, podziel się z nim adresem URL rozszerzenia za pośrednictwem czatu tekstowego Jitsi Meet.
Zależności
To technicznie nie jest zależność, ale powinieneś zapoznać się z thefinn93.letsencrypt dla niesamowicie łatwych certyfikatów SSL.
Przykładowy Playbook
Zawsze dobrze jest dołączyć przykład, jak używać swojej roli (np. z przekazanymi jako parametry zmiennymi):
- name: Konfiguracja serwera jitsi-meet.
hosts: jitsi
vars:
# Zmień to, aby pasowało do wpisu DNS dla twojego adresu IP.
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
Uruchamianie testów
Ta rola używa Molecule i ServerSpec do testowania. Aby ją użyć:
pip install molecule
gem install serverspec
molecule test
Możesz także uruchomić wybrane polecenia:
molecule idempotence
molecule verify
Zobacz dokumentację Molecule po więcej informacji.
Licencja
MIT
Informacje o autorze
ansible-galaxy install oneoffadmins.ansible_role_jitsi_meet