jitsi-meet
jitsi-meet
Устанавливает и настраивает программное обеспечение для видеоконференций Jitsi Meet.
Требования
У вас уже должны быть настроены DNS на сервере и SSL-ключи. Если у вас еще нет SSL-ключей для домена, рассмотрите возможность использования замечательной Ansible-роле thefinn93.letsencrypt для получения (бесплатных!) SSL-сертификатов от LetsEncrypt.
Вам также потребуется открыть порты 443 TCP и 10000 UDP, чтобы компоненты Jitsi Meet работали. По умолчанию роль будет использовать ufw
для разрешения этих портов. Если вы используете другое решение для файрвола, такое как iptables, установите jitsi_meet_configure_firewall: false
. Если вы используете AWS или подобные сервисы, вам нужно будет открыть эти порты в связанном Группе безопасности.
Переменные роли
# Файлы сертификатов по умолчанию находятся по адресу /var/lib/prosody/localhost.{crt,key}
# Не устанавливайте их здесь, потому что пустые строки для пользовательских сертификатов будут
# приводить к пропуску задач с пользовательской конфигурацией Nginx.
jitsi_meet_ssl_cert_path: ''
jitsi_meet_ssl_key_path: ''
# Без SSL "localhost" является правильным значением по умолчанию. Если предоставлена информация об SSL,
# нам потребуется реальное доменное имя. Используя подразумеваемое полное доменное имя Ansible, вы
# можете установить значение переменной явно, если используете более короткое имя хоста.
# Если автоматическая настройка Nginx отключена, также используйте полное доменное имя (FQDN),
# так как, предполагается, что другая роль будет управлять конфигурацией виртуального хоста.
jitsi_meet_server_name: "{{ ansible_fqdn if (jitsi_meet_ssl_cert_path or not jitsi_meet_configure_nginx) else 'localhost' }}"
# Поддерживается только "анонимная" аутентификация, что позволяет любому использовать сервер видеоконференций.
jitsi_meet_authentication: anonymous
# Установка пакета Debian jitsi-meet сгенерирует секреты для компонентов.
# Роль будет читать конфигурационный файл и сохранять секреты, даже во время шаблонизации.
# Если вы хотите сгенерировать свои собственные секреты и использовать их, переопределите эти переменные,
# но убедитесь, что храните секреты безопасно, например, с помощью ansible-vault или credstash.
jitsi_meet_videobridge_secret: ''
jitsi_meet_jicofo_secret: ''
jitsi_meet_jicofo_password: ''
# Информация по умолчанию для аутентификации, используемая в нескольких шаблонах служб.
jitsi_meet_jicofo_user: focus
jitsi_meet_jicofo_port: 5347
# Файл конфигурации по умолчанию: /etc/jitsi/videobridge/config утверждает, что стандартный порт
# для JVB - "5275", но руководство по ручной установке ссылается на "5347".
# https://github.com/jitsi/jitsi-meet/blob/master/doc/manual-install.md
jitsi_meet_videobridge_port: 5347
# Недавнее дополнение для защиты конфиденциальности, смотрите здесь для деталей:
# https://github.com/jitsi/jitsi-meet/issues/422
# https://github.com/jitsi/jitsi-meet/pull/427
jitsi_meet_disable_third_party_requests: true
# Конфигурация для совместного использования экрана в Chrome. Вам нужно создать и упаковать расширение браузера
# специально для вашего домена; смотрите https://github.com/jitsi/jidesha
jitsi_meet_desktop_sharing_chrome_method: 'ext'
jitsi_meet_desktop_sharing_chrome_ext_id: 'diibjkoicjeejcmhdnailmkgecihlobk'
# Путь к локальному расширению на диске, для копирования на целевой хост. Удаленное имя файла
# будет основной частью указанного здесь пути.
jitsi_meet_desktop_sharing_chrome_extension_filename: ''
# Конфигурация для совместного использования экрана в Firefox. Установите max_version на '42' и disabled на 'false'
# если вы хотите использовать совместное использование экрана под Firefox.
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'
# Эти настройки debconf представляют собой ответы на интерактивные запросы во время установки
# пакета jitsi-meet. Если вы используете пользовательские SSL-сертификаты, возможно, вам придется установить больше опций.
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
# Роль автоматически установит и настроит ufw с портами jitsi-meet.
# Если вы управляете файрволом по-другому, установите это значение в false, и ufw будет пропущен.
jitsi_meet_configure_firewall: true
# Роль автоматически установит nginx и настроит виртуальный хост для использования с jitsi-meet.
# Если вы предпочитаете управлять веб-виртуальными хостами через отдельную роль, установите это значение в false.
jitsi_meet_configure_nginx: true
Совместное использование экрана
Jitsi Meet поддерживает функциональность совместного использования экрана через расширения браузера. Только стороне, делящейся экраном, необходимо установить расширение — другие участники в собрании смогут видеть общий экран без установки чего-либо. Вам нужно будет создать свое собственное расширение браузера для Chrome и/или Firefox. Смотрите документацию по Jidesha для подробных инструкций по сборке. Эта роль тестировалась только с пользовательскими расширениями Chrome.
Chrome запрещает установку расширений с непроверенных веб-сайтов, поэтому вам нужно
загрузить файл .crx
напрямую, затем перейти на chrome://extensions
и перетащить расширение, чтобы установить его. Если вы хотите предоставить другому участнику поддержку совместного использования экрана, поделитесь с ним URL-адресом расширения через текстовый чат Jitsi Meet.
Зависимости
Это технически не зависимость, но вы должны ознакомиться с thefinn93.letsencrypt для удивительно простых SSL-сертификатов.
Пример плейбука
Включение примера того, как использовать вашу роль (например, с переданными в качестве параметров переменными), всегда полезно для пользователей:
- name: Настройка сервера jitsi-meet.
hosts: jitsi
vars:
# Измените это, чтобы соответствовать записи DNS для вашего 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
Запуск тестов
Эта роль использует Molecule и ServerSpec для тестирования. Чтобы использовать ее:
pip install molecule
gem install serverspec
molecule test
Вы также можете запускать выборочные команды:
molecule idempotence
molecule verify
Смотрите документацию Molecule для получения дополнительной информации.
Лицензия
MIT
Информация об авторе
ansible-galaxy install freedomofpress/ansible-role-jitsi-meet