cimnine.jitsi_meet

jitsi_meet

Rola Ansible do instalacji Jitsi Meet.

Wprowadzenie

To jest rola Ansible, która instaluje Jitsi Meet z nginx jako serwerem proxy z zakończeniem TLS i opcjonalnie certyfikatem Let's Encrypt (przez certbot) na Ubuntu Bionic (18.04).

Wymagania

  • Musisz mieć domenę skierowaną na swój serwer, aby używać Let's Encrypt.
  • Twój zapora ogniowa musi zezwalać na porty 80/tcp, 443/tcp, 4443/tcp, 10000/udp.
    • Jeśli twój serwer jest za NAT, upewnij się, że te porty są przekierowane.

Zmienne roli

  • apt_mirror: Na Ubuntu, universe musi być włączone. Ta zmienna powinna wskazywać na lustrzaną wersję twojego systemu. Domyślnie to http://archive.ubuntu.com/ubuntu.
  • jitsi_domain: Pod jaką domeną będzie dostępny Jitsi. Musi być nazwą domeny, jeśli zamierzasz używać Let's Encrypt. Może być adresem IP w przeciwnym razie. Domyślnie to {{ inventory_hostname }}.
  • certbot_enabled: Czy zainstalować certbot i poprosić o certyfikat dla {{ jitsi_domain }}. Domyślnie to false.
  • certbot_admin_email: Który adres e-mail zarejestrować dla Let's Encrypt. Wymagane, jeśli certbot_enabled=true. E-mail powinien istnieć. Brak wartości domyślnej.
  • jitsi_nat: Czy uruchamiasz jitsi meet za NAT. Domyślnie to false. Jeśli włączone, musisz ustawić jitsi_nat_local_ip i jitsi_nat_public_ip.
  • jitsi_nat_public_ip: Publiczny adres IP twojego hosta jitsi meet. Domyślnie to IPv4 zgłoszone przez ipify.
  • jitsi_nat_private_ip: Prywatny adres IP twojego hosta jitsi meet. Domyślnie to IPv4, który Ansible uznaje za domyślny dla hosta.
  • nginx_server_names_hash_bucket_size: Wartość server_names_hash_bucket_size dla nginx. Zostanie zadeklarowana w globalnym pliku nginx.conf, jeśli nginx_modify_server_names_hash_bucket_size jest ustawione na true. Domyślnie to 64.
  • nginx_modify_server_names_hash_bucket_size: Czy zmienić wartość server_names_hash_bucket_size w globalnym pliku nginx.conf. Domyślnie to true.

Zobacz także geerlingguy/ansible-role-certbot/.../defaults/main.yml dla dodatkowych ustawień konfiguracji związanych z certbot.

Zależności

Zależy od roli Ansible geerlingguy.certbot dla zadań Let's Encrypt / certbot:

ansible-galaxy install geerlingguy.certbot

Szybki start

Zainstaluj Ansible:

# na macOS z Homebrew
brew install ansible

# na Debianie
sudo apt update
sudo apt install software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt install ansible

# lub przez Pythona / pip
sudo python3 -m pip install ansible

Skonfiguruj nowy serwer z Ubuntu 18.04 lub zdobądź jeden na Digital Ocean, Vultr, Hetzner Cloud, Cloudscale, Azure, Google Cloud, AWS, ...

Upewnij się, że możesz zalogować się za pomocą swojego klucza SSH:

ssh-copy-id [email protected]
ssh [email protected]

Utwórz plik inwentarza:

# jitsi.ini
[jitsi]
my-jitsi-server.com jitsi_domain=my-jitsi-server.com [email protected]

[jitsi:vars]
ansible_user=ubuntu
ansible_become=yes # ustaw na `no` jeśli logujesz się przez root
apt_mirror=http://archive.ubuntu.com/ubuntu # zmień na lustrzane, którego już używasz
certbot_enabled=yes
jitsi_nat=no # włącz, jeśli twój serwer jest za NAT.

Utwórz plik playbooka:

# jitsi.yml
- hosts: jitsi
  roles:
      - cimnine.jitsi_meet

Zainstaluj wymagane zależności:

ansible-galaxy install cimnine.jitsi_meet
ansible-galaxy install geerlingguy.certbot

Uruchom plik playbooka na inwentarzu:

# jeśli `sudo` na twoim serwerze nie wymaga hasła:
ansible-playbook -i jitsi.ini jitsi.yml

# lub jeśli `sudo` na twoim serwerze wymaga hasła:
ansible-playbook -K -i jitsi.ini jitsi.yml

Konfiguracja

Jitsi Meet można skonfigurować z tej roli Ansible. Aby to zrobić, plik /etc/jitsi/meet/{{ jitsi_domain }}-config.js z pakietu upstream zostanie zastąpiony plikiem zarządzanym przez tę rolę.

Aby włączyć tę funkcjonalność, zdefiniuj zmienną: managed_jitsi_config i ustaw ją na yes.

Na przykład dodaj ostatnią linię z poniższego przykładu do swojego pliku jitsi.ini:

# jitsi.ini
[jitsi]
my-jitsi-server.com jitsi_domain=my-jitsi-server.com [email protected]
[jitsi:vars]
ansible_user=ubuntu
ansible_become=yes
apt_mirror=http://archive.ubuntu.com/ubuntu # zmień na lustrzane, którego już używasz
certbot_enabled=yes
jitsi_nat=no
managed_jitsi_config=yes  # zarządzaj swoją konfiguracją jitsi za pomocą tej roli

Następnie ustaw wszystkie wymagane zmienne konfiguracyjne. Domyślne wartości można znaleźć w pliku defaults/main.yml roli. Wszystkie zmienne muszą być podane, nie tylko te, które chcesz nadpisać! Zwróć uwagę na puste zmienne, takie jak analytics: {}: ze względu na sposób działania Jitsi, musi to być pusty obiekt, nie może być null.

Wszystkie ustawienia, ich wartości, użycie i efekty są udokumentowane w jitsi-meet config.js.

Najmniejszy przykład to:

jitsi_config:
  hosts:
    domain: "{{ jitsi_domain }}"
    muc: "conference.{{ jitsi_domain }}"
  bosh: "//{{ jitsi_domain }}/http-bind"
  clientNode: "http://jitsi.org/jitsimeet"
  testing:
    enableFirefoxMulticast: false
    p2pTestMode: false
  desktopSharingChromeExtId: null
  desktopSharingChromeSources: [ 'screen', 'window', 'tab' ]
  desktopSharingChromeMinExtVersion: '0.1'
  channelLastN: -1
  enableWelcomePage: true
  enableUserRolesBasedOnToken: false
  p2p:
    enabled: true
    stunServers:
      - urls: 'stun:stun.l.google.com:19302'
      - urls: 'stun:stun1.l.google.com:19302'
      - urls: 'stun:stun2.l.google.com:19302'
    preferH264: true
  analytics: {}
  deploymentInfo: {}
  localRecording: {}
  e2eping: {}
  deploymentUrls: {}

UWAGA: Wymagania dotyczące config.js mogą zmieniać się w każdej chwili podczas aktualizacji jitsi-meet, upstream nie jest zbyt komunikatywny w tej sprawie. Sprawdź jakiekolwiek CHANGELOG i ogłoszenia projektu Jitsi Meet na temat nowych wymaganych wartości przed aktualizacją.

UWAGA: Struktura jest wrażliwa na wielkość liter i odpowiada dokładnym ustawieniom zmiennych w config.js. Przykładowo, webrctIceUdpDisable jest zupełnie inne niż WebRTCIceUDPDisable. Jitsi jest niespójne w nazewnictwie zmiennych (na przykład losowo miksuje URL i Url), więc zwróć uwagę na dokładną nazwę.

Odinstalowanie

Poniższe polecenia pomogą ci usunąć instalację. Mogą nie usunąć wszystkich plików, ale wystarczy, aby rozpocząć ponownie, jeśli coś nie wyszło.

systemctl stop jitsi-videobridge
systemctl disable jitsi-videobridge
apt-get purge -y jigasi jitsi-meet jitsi-meet-web-config jitsi-meet-prosody jitsi-meet-web jicofo jitsi-videobridge

systemctl stop nginx
systemctl disable nginx
apt-get purge -y nginx nginx-common nginx-full

apt purge certbot

rm -rf /etc/jitsi /etc/nginx /etc/letsencrypt

crontab -e -u root

reboot

Licencja

MIT

O projekcie

Install jitsi-meet with nginx and (optionally) certbot

Zainstaluj
ansible-galaxy install cimnine.jitsi_meet
Licencja
mit
Pobrania
651
Właściciel
Called myself «serious software architect» as a joke, then ended up sticking to that.