ansible_role_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
# предоставлена, нам потребуется настоящее имя домена. Используем FQDN, который предоставляет Ansible
# Если автоматическая конфигурация Nginx отключена, также используйте FQDN, поскольку,
# предположительно, другая роль будет управлять конфигурацией vhost.
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
# Если Jitsi Videobridge находится за NAT, установите эти значения, чтобы сделать ICE работающим
jitsi_meet_videobridge_nat:
local_ip: ''
public_ip: ''
# Недавнее нововведение в области конфиденциальности, подробности здесь:
# 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 и настроит vhost для использования с jitsi-meet.
# Если вы предпочитаете управлять веб vhosts с помощью отдельной роли, установите это значение в 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 OneOffTech/ansible-role-jitsi-meet