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 tohttp://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 tofalse.certbot_admin_email: Który adres e-mail zarejestrować dla Let's Encrypt. Wymagane, jeślicertbot_enabled=true. E-mail powinien istnieć. Brak wartości domyślnej.jitsi_nat: Czy uruchamiasz jitsi meet za NAT. Domyślnie tofalse. Jeśli włączone, musisz ustawićjitsi_nat_local_ipijitsi_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_sizedla nginx. Zostanie zadeklarowana w globalnym plikunginx.conf, jeślinginx_modify_server_names_hash_bucket_sizejest ustawione natrue. Domyślnie to64.nginx_modify_server_names_hash_bucket_size: Czy zmienić wartośćserver_names_hash_bucket_sizew globalnym plikunginx.conf. Domyślnie totrue.
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
# 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
Install jitsi-meet with nginx and (optionally) certbot
ansible-galaxy install cimnine.jitsi_meet