udelarinterior.jitsi_meet
jitsi-meet
Instaluje i konfiguruje oprogramowanie do wideokonferencji Jitsi Meet.
Wymagania
Musisz mieć skonfigurowany DNS, który wskazuje na serwer oraz klucze SSL. Jeśli nie masz jeszcze kluczy SSL dla swojej domeny, rozważ użycie roli Ansible geerlingguy.certbot, aby uzyskać darmowe certyfikaty SSL od LetsEncrypt.
Będziesz także musiał otworzyć porty 443 (TCP) i 10000 (UDP), aby komponenty Jitsi Meet mogły działać. Ta rola może używać ufw
, aby zezwolić na te porty, ustawiając jitsi_meet_configure_firewall: true
. Jeśli używasz innego rozwiązania zapory opartego na hoście, takiego jak iptables, ustaw jitsi_meet_configure_firewall: false
. Jeśli korzystasz z AWS lub podobnych, musisz otworzyć te porty w przypisanej grupie zabezpieczeń.
Zmiennie roli
########################################
###### Najważniejsze zmienne ##########
# i które musisz dostosować do swojej sytuacji #
########################################
jitsi_meet_server_name: "{{ ansible_fqdn | default('localhost') }}"
jitsi_meet_install_recommends: yes
jitsi_meet_use_stun_turn: false
jitsi_meet_stun_servers:
- 'meet-jit-si-turnrelay.jitsi.net:443'
jitsi_meet_enable_p2p_mode: true
jitsi_meet_ipv6_enable: true
jitsi_meet_cert_choice: "Wygeneruj nowy certyfikat samopodpisany (później będziesz miał możliwość uzyskania certyfikatu Let's Encrypt)"
jitsi_meet_ssl_cert_path: ''
jitsi_meet_ssl_key_path: ''
jitsi_meet_configure_nginx: true
jitsi_meet_nginx_config_template: "jitsi_meet_nginx.conf.j2"
jitsi_meet_videobridge_secret: ''
jitsi_meet_jicofo_secret: ''
jitsi_meet_jicofo_password: ''
jitsi_meet_base_packages:
- apt-transport-https
- debconf
- debconf-utils
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'
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
jitsi_meet_configure_firewall: false
jitsi_meet_firewall_ports_allow:
tcp:
- "80" # HTTP / Lets Encrypt
- "443" # HTTPS
udp:
- "10000" # Videobridge
jitsi_meet_behind_nat_firewall: false
jitsi_meet_nat_private_ip: 127.0.0.1
jitsi_meet_nat_public_ip: 255.255.255.255
jitsi_meet_jicofo_user: focus
jitsi_meet_jicofo_port: 5347
jitsi_meet_jicofo_loglevel: INFO
jitsi_meet_jicofo_config_template: jicofo_config.j2
jitsi_meet_jicofo_sip_template: jicofo_sip-communicator.properties.j2
jitsi_meet_videobridge_port: 5347
jitsi_meet_videobridge_loglevel: INFO
jitsi_meet_videobridge_opts: '--apis=,'
jitsi_meet_videobridge_statistics_enable: true
jitsi_meet_videobridge_statistics_interval: 1000
jitsi_meet_videobridge_statistics_transport: 'muc'
jitsi_meet_expose_colibri_stats: false
jitsi_meet_videobridge_other_xmpp_servers: {}
jitsi_meet_videobridge_config_template: videobridge_config.j2
jitsi_meet_videobridge_sip_template: videobridge_sip-communicator.properties.j2
jitsi_meet_authentication: anonymous
jitsi_meet_enable_third_party_requests: true
jitsi_meet_desktop_sharing_chrome_method: 'ext'
jitsi_meet_enable_desktop_sharing_chrome: true
jitsi_meet_desktop_sharing_chrome_ext_id: 'diibjkoicjeejcmhdnailmkgecihlobk'
jitsi_meet_desktop_sharing_chrome_extension_filename: ''
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
jitsi_meet_config_js_template: jitsi_meet_config.js.j2
jitsi_meet_interface_config_js_template: interface_config.js.j2
jitsi_meet_configure_sip_gateway: false
jitsi_meet_jigasi_account: [email protected]
jitsi_meet_jigasi_password: fdi49fndKjhe3
jitsi_meet_customize_the_ui: false
jitsi_meet_lang: 'en'
jitsi_meet_appname: 'Moja nazwa aplikacji'
jitsi_meet_org_link: 'https://link-do-mojej-organizacji.com'
jitsi_meet_welcomepage_title: 'Bezpieczne, w pełni funkcjonalne i całkowicie darmowe wideokonferencje'
jitsi_meet_welcomepage_description: 'Śmiało, wideo czatować z całą drużyną. Właściwie, zaproś wszystkich, których znasz. __app__ to całkowicie zaszyfrowane, 100% otwarte źródło rozwiązanie do wideokonferencji, które możesz używać przez cały dzień, codziennie, za darmo — bez potrzeby rejestracji.'
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: 'Kolega Jitser'
jitsi_meet_default_local_display_name: 'ja'
jitsi_meet_generate_roomnames_on_welcome_page: true
jitsi_meet_lang_detection: false
Udostępnianie ekranu
Jitsi Meet wspiera funkcjonalność udostępniania ekranu poprzez rozszerzenia przeglądarki. Tylko osoba udostępniająca ekran musi mieć zainstalowane rozszerzenie – pozostali uczestnicy spotkania będą mogli zobaczyć udostępniony ekran bez instalowania czegokolwiek. Musisz stworzyć własne rozszerzenie przeglądarki dla Chrome i/lub Firefox. Zobacz dokumentację Jidesha po szczegółowe instrukcje. Ta rola była testowana tylko z własnymi 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 umożliwić innemu uczestnikowi wsparcie w zakresie udostępniania ekranu, podziel się z nim linkiem do rozszerzenia poprzez czat tekstowy w Jitsi Meet.
Zależności
To technicznie nie jest zależność, ale warto zajrzeć do geerlingguy.certbot, aby uzyskać rewelacyjnie łatwe certyfikaty SSL.
Przykładowy playbook
Oto przykład, jak używać swojej roli (na przykład, z przekazywaniem zmiennych jako parametrów):
- name: Skonfiguruj serwer 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: 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
Uruchamianie testów
Ta rola używa Molecule i ServerSpec do testowania. Aby z nich skorzystać:
pip install molecule
gem install serverspec
molecule test
Możesz także uruchomić selektywne komendy:
molecule idempotence
molecule verify
Zobacz dokumentację Molecule po więcej informacji.
Licencja
MIT
Informacje o autorze
Freedom of the Press Foundation, UdelaR Interior, @santiagomr
Installs Jitsi Meet videoconferencing software
ansible-galaxy install udelarinterior.jitsi_meet