В результате выполнения шагов данного руководства ожидается:
Начиная с версии 6.0, предусмотрена возможность использовать Ansible для автоматического заполнения конфигурационных файлов гибридных сервисов, что позволяет избежать ошибок, а также сократить время настройки. При автоматизированном конфигурировании требуется указать нужные параметры только один раз в одном файле, после чего Ansible playbook сконфигурирует все сам.
Данное руководство описывает ручную установку и применение Ansible для автоматического заполнения конфигурационных файлов. |
Если по каким-либо причинам вы не можете использовать Ansible, воспользуйтесь инструкцией по ручной настройке.
Архитектура DION предусматривает возможность переноса части компонентов, отвечающих за обработку медиа-трафика и создание/хранение записей конференции, на площадку организации. Такие компоненты называются гибридными узлами (hybrid node). Наличие гибридных узлов позволяет проводить конференции в защищенном контуре, не передавая медиа-трафик в облако DION.
В гибридном сценарии связь гибридных узлов с облаком DION является обязательным условием для работы конференций, так как в облако передаются сигнальная информация и управляющие команды.
Все гибридные компоненты, доступные к установке, можно разделить на группы по функциональному назначению:
В данном руководстве рассмотрена установка:
|
Сервисы конференций и записи DION, вынесенные в гибридную архитектуру, представлены на схеме зеленым цветом:
Наименование компонента | Описание компонента |
---|---|
MEDIA (SFU + Audiohub) | Компонент, отвечающий за обработку аудио и видео-потоков. |
Recorder, Record Converter, Record delivery | Компоненты, отвечающие за создание, конвертацию и скачивание пользователями видеозаписей конференций. Рекомендуется размещение на одном хосте. |
TURN | Компонент, отвечающий за подключение внешних пользователей ко внутренним медиа-серверам через NAT. |
Dion Proxy | Компонент, отвечающий за обнаружение гибридных узлов (hybrid node) облаком DION. |
KMS | Компонент, отвечающий за хранение секрета для шифрования записей конференции при хранении. |
Компоненты могут быть дублированы с целью обеспечения отказоустойчивости и масштабирования. |
На данный момент тестирование проводится на следующих операционных системах:
Прежде, чем перейти к установке пакетов и редактированию конфигурационных файлов, выполните следующие шаги:
Во время установки гибридных узлов (hybrid node) необходим доступ в репозиторий операционной системы для установки необходимых зависимостей. При отсутствии доступа к публичному репозиторию некоторые пакеты не будут установлены корректно. |
Скачайте образы в виде deb- (или rpm-) пакетов и образов контейнеров в следующем составе:
Запросите в службе поддержки пользователей (support@diongo.ru) сертификаты, выпущенные для вашей организации.
Запрос должен быть отправлен с почтового адреса пользователя, зарегистрированного в DION с ролью Администратор организации. |
Вам должны быть предоставлены следующие файлы:
ID организации можно также посмотреть и скопировать в Административной панели DION. |
Данные действия следует выполнить на всех машинах, где будут установлены сервисы Dion. |
1. Создайте пользователя dion:
sudo adduser dion
2. Добавьте пользователя dion в группу sudo:
sudo usermod -aG sudo dion
3. Для корректной работы Ansible отключите запрос пароля при повышении привилегий участникам группы sudo (на всех сервисах DION). Для этого необходимо отредактировать файл /etc/sudoers:
sudo visudo
4. Найдите в редакторе строку %sudo ALL=(ALL:ALL) ALL и замените ее на %sudo ALL=(ALL:ALL) NOPASSWD: ALL.
5. Сохраните файл и выйдите из текстового редактора.
Автоматизированное конфигурирование производится с использованием Ansible.
Чтобы использовать Ansible, необходимо выделить одну “якорную” машину, на которой будет работать установщик. От этой машины на время установки необходимо иметь открытый доступ по SSH до всех других машин без запроса пароля. Можно использовать в качестве “якорной” одну из машин dion-proxy, если есть возможность сделать от неё доступ по SSH до всех других виртуальных машин DION. В противном случае, используйте любую другую машину, расположенную в LAN. Например, media.
1. Установите Docker на “якорную” машину. Для установки рекомендуем воспользоваться официальной инструкцией.
Все последующие действия в данном разделе выполняются от пользователя dion на “якорной” машине. |
2. Для корректной работы Ansible требуется настройка безопасного доступа по SSH без запроса пароля для локального хоста на самого себя, а также на другие гибридные узлы DION (на все виртуальные машины, которые участвуют в установке).
a. Создайте новую пару SSH ключей:
ssh-keygen -t rsa
b. Скопируйте открытый SSH ключ на этот же сервер с помощью команды:
ssh-copy-id dion@ip_адрес
c. Повторите действие ssh-copy-id для IP-адресов всех гибридных узлов DION.
На машине должен быть установлен Docker. Для установки рекомендуем воспользоваться официальной инструкцией. |
3. Добавьте пользователя dion в группу docker:
sudo usermod -aG docker dion
Для применения группы следует повторно выполнить вход под пользователем dion:
su - dion
4. Скачайте на “якорную” машину архив ansible_hybrid.tar.gz, который содержит Docker-контейнер и Ansible-скрипт, в домашний каталог dion.
5. Распакуйте данный архив в каталог /home/dion/:
cd /home/dion
tar -xf ansible_hybrid.tar.gz
6. Создайте каталог cert на “якорной” машине в домашнем каталоге пользователя dion:
sudo mkdir /home/dion/cert
7. Передайте права на созданный каталог пользователю dion:
sudo chown dion:dion /home/dion/cert
8. Перенесите полученные файлы (txt и сертификаты) в каталог cert на “якорной” машине.
|
Выполните следующие действия:
1. Перенесите образы на соответствующие серверы/виртуальные машины.
2. Установите deb- / rpm-пакеты:
a. Выполните обновление репозиториев:
sudo apt update
sudo apt upgrade
b. Запустите установку пакета с помощью менеджера пакетов, например apt:
sudo apt install -f {путь к файлу}
3. Установите Docker на все машины, на которых будут развернуты сервисы TURN и Recorder. Для установки рекомендуем воспользоваться официальной инструкцией.
4. Загрузите образ контейнера vscreen_transcoder.tar в Docker на машине, где будет установлен Recorder.
На машине должен быть установлен Docker. Для установки рекомендуем воспользоваться официальной инструкцией. |
sudo docker load -i {путь к образу vscreen_transcoder.tar}
5. Установите ffmpeg на машине, где будет установлен Record Converter:
sudo apt install ffmpeg
1. Скачайте архив Docker-образа с TURN для настройки на сервере. Архив содержит три файла:
2. Создайте каталог для размещения содержимого архива на целевой виртуальной машине:
sudo mkdir -p /app/dion/coturn/certs
3. Распакуйте полученный архив в созданный каталог /app/dion/coturn/.
4. В каталог /app/dion/coturn/certs/ скопируйте сертификат и ключ для вашей организации (crt и key), предоставленные командой DION.
5. Установите docker и docker-compose. Рекомендуем воспользоваться официальной инструкцией на сайте Docker.
6. Загрузите образ из архива в локальный реестр, выполнив команду:
sudo docker load -i /app/dion/coturn/coturn_XXX
Если вы не планируете использовать сервис записи конференций, пропустите эту секцию и переходите к разделу конфигурирования сервисов. |
Наличие хранилища S3 является обязательным требованием для проведения записи конференций в гибридной системе. Предполагается, что в вашей организации существует хранилище S3, которое может быть использовано DION для хранения аудио и видео записей конференций. Обратите внимание на то, что в конфигурационных файлах DION указываются IP-адрес/имя хоста S3 и порт доступа, имя бакета (директория для хранения записей), пара access-key и secret-key. |
Для пилотной инсталляции вы можете запросить демо-образ S3 у вашей аккаунт-команды. Рекомендуем установить minio на отдельной VM. Для установки на машине требуются docker и docker-compose.
Демо-образ не подходит для продуктивной инсталляции, так как не поддерживает отказоустойчивость. |
Чтобы развернуть демо-образ, выполните следующее:
1. Распакуйте полученный архив на VM. Архив содержит docker-образ minio, docker-compose.yml и readme.md.
2. Установите docker и docker-compose. Рекомендуем воспользоваться официальной инструкцией на сайте Docker.
3. В файле docker-compose.yml посмотрите и поменяйте при необходимости логин и пароль для доступа к minio. Эти учетные данные используются при входе в minio через веб-интерфейс.
environment:
MINIO_ROOT_USER: {имя пользователя}
MINIO_ROOT_PASSWORD: {пароль}
4. Перейдите в веб-консоль minio по адресу http://{IP выбранной VM}:9000.
5. В веб-консоли создайте новый бакет и пару access-key и secret key. Сохраните имя бакета и ключи.
Сохраните ключи сразу же в процессе создания, позже посмотреть их невозможно. |
Если произошла перезагрузка и демо-S3 не стартовал автоматически, выполните инструкции ниже, чтобы запустить сервис заново.
Перейдите в папку, где лежит файл docker-compose.yml и выполните команду:
docker compose up -d
либо (для docker-compose v1):
docker-compose up -d
Все действия в данном разделе выполняются на “якорной” машине от пользователя dion. |
1. Откройте файл hosts на редактирование:
nano /home/dion/ansible/playbook/inventory/hosts
Структура файла выглядит как набор секций, названия которых соответствуют названию сервисов DION. В каждой секции пропишите отдельными строчками все машины, на которых установлен данный сервис DION.
a. Для машин, у которых есть только внутренний IP-адрес, укажите его в параметре ansible_host. Например:
recorder1 ansible_host=192.168.1.1
b. Для машин, у которых есть внутренний и внешний IP-адреса, укажите два параметра. Например:
dion-proxy1 ansible_host=192.168.1.2 publicHost=72.72.72.72
c. Если узлов одного типа несколько, добавьте дополнительную строку в соответствующий блок. Например:
[turn]
turn1 ansible_host=192.168.1.3 publicHost=72.72.72.73
turn2 ansible_host=192.168.1.4 publicHost=72.72.72.74
d. Сохраните изменения в файле.
2. Откройте файл vars.yaml на редактирование:
nano /home/dion/ansible/playbook/inventory/group_vars/all/vars.yaml
a. Следуйте комментариям в данном файле и заполните нужные параметры.
b. Сохраните изменения в файле.
3. Перейдите в каталог ansible:
cd ansible/
Назначьте права на исполнение файла и выполните запуск скрипта:
chmod +x install.sh
./install.sh
4. Убедитесь, что скрипт отработал без ошибок. В полях failed значение должно быть 0.
В результате выполнения скрипта на всех узлах DION появятся заполненные конфигурационные файлы. Сервисы DION перейдут в работоспособное состояние.
После конфигурирования сервисов и настроек административных параметров выполните проверку работоспособности сервисов. |
Чтобы гибридный DION начал работу, необходимо не только установить и сконфигурировать гибридные узлы (hybrid node), но и выполнить соответствующие настройки в Административной панели DION.
Для запуска гибридного режима, в Административной панели перейдите в настройки гибридных сервисов:
3. В разделе Конференции включите параметр Возможность переноса конференции в On-Premises.
4. После этого в Личном Кабинете пользователя в настройках безопасности конференции можно будет выбрать, где проводить конференцию:
Остальные параметры можно настроить на ваше усмотрение.
Параметр Новые конференции создаются On-Premises позволяет управлять созданием комнат по умолчанию для пользователей. Если флажки сняты, комнаты пользователей создаются в облаке. Если флажки установлены, конференции создаются на гибридных ресурсах. Этот параметр не влияет на уже созданные конференции.
Поведение системы в зависимости от положения Возможность переноса конференции в On-Premises и Новые конференции создаются On-Premises показано в таблице:
Возможность переноса конференции в On-Premises | Новые конференции создаются On-Premises | Результат |
---|---|---|
Выкл | Выкл | Все новые конференции создаются в облаке, пользователь не может перенести их на площадку организации. |
Вкл | Выкл | Все новые конференции создаются в облаке, пользователь может перенести их на площадку организации через свой личный кабинет и настройки конференции. |
Выкл | Вкл | Все новые конференции создаются на площадке организации, пользователь не может перенести их в облако |
Вкл | Вкл | Все новые конференции создаются на площадке организации, пользователь может перенести их в облако через свой личный кабинет и настройки конференции. |
Для подключения внешних пользователей включите параметр Свободный доступ к On-Premises конференциям.
Если сервисы записи установлены:
Необходимо вводить адрес именно в указанном выше формате, иначе при попытке сохранить настройки вы получите ошибку. |
Если в системе несколько узлов Record Delivery, вместо IP укажите DNS-имя: https://**FQDN**:443/v1/file
При отсутствии в гибридной системе сервисов записи, убедитесь, что в административной панели запись конференций On-Premises отключена. Кнопка записи не будет отображаться пользователю. В противном случае при старте записи пользователю будет отображаться сообщение об ошибке. |
После конфигурирования сервисов и настроек административных параметров в настройках безопасности комнаты в DION можно выбрать параметр On-Premises:
Для проверки работоспособности сервисов записи необходимо зайти в гибридную конференцию (отмеченную значком в виде синего щита в интерфейсе) и включить запись.
Для проверки аудиозаписи в настройках конференции в разделе Запись включите параметр Аудиозапись конференции. |
Если в процессе записи возникли ошибки или ссылка на скачивание записи не пришла, обратитесь к руководству по устранению неисправностей или к вашей аккаунт-команде за помощью.
Статус регистрации сервисов можно отслеживать в Административной панели на вкладке Гибридные сервисы в профиле организации.
При верной конфигурации все сервисы отмечены зелёным цветом.