Разворачивание решения #
Версионирование #
Каждая версия релиза SVA имеет формат vX.Y.Z, соответственно все контейнеры в инсталляции должны иметь одинаковую версию. Работоспособность контейнеров разных версий не гарантируется.
Отдельное версионирование имеет сторонне ПО, оно соответствует нумерации принятой разработчиком. Репозиторий SVA содержит протестированные для работы с SVA версии контейнеров с третьим ПО, которые отличаются от публичных лишь наличием набора “тестовых” серверных сертификатов, расположенных по пути /cert.
Вместо них возможно использовать публичные версии ПО.
Данные для установки #
Перед началом установки решения рекомендуется заранее подготовить минимально необходимый набор данных:
| данные | комментарий |
|---|---|
| логин и пароль суперадминитратора | автоматически создаваемый пользователь с ролью “Суперадминистратора” |
| название основной компании | не может быть изменено позже |
| публичный ip адрес | для доступности из сети интернет |
| публичный FQDN | должен разрешаться в публичный ip адрес |
| сертификат и ключ для публичного FQDN | сертификат и ключ для защищенного подключения к сайту |
| диапазон портов для подключения клиентов к janus | минимум 300 портов на каждый экземпляр janus |
| адрес/адреса stun и/или turn сервера | для повышения возможности успешного подключения клиентов |
| логин и пароль или секрет для turn сервера | чтобы избежать “открытого” turn relay |
Настройки Firewall #
В общем должны быть открыты для приёма входящих соединений из сети интернет:
443 tcp(https) для контейнераvc-wwwtcp, udpсобственный диапазон портов для каждого контейнераjanus
Подробности, включая возможные исходящие соединения, можно найти в описании взаимодействий с сетью Internet
Взаимодействие между контейнерами #
По-умолчанию все контейнеры обращаются друг к другу по именам сервисов из compose файлов. Имена по-умолчанию указаны в примерах.
Если сервис имеет другое имя, то можно использовать директиву links в compose файле:
links:
- "default_name:other_name"
Если сервис расположен на другом хосте, то можно использовать директиву extra_hosts в compose файле:
extra_hosts:
vc-service1: "10.10.10.10"
vc-service2: "10.10.10.20"
Владелец процесса в контейнерах #
Для всех контейнеров SVA можно настроить идентификаторы пользователя и группы, под которыми будут запущены процессы. Это может понадобиться как в целях безопасности, так и для определения владельца и прав файлов на присоединенных к контейнерам томах и дисках.
Задать параметры владельца процесса можно переменными окружения:
EUID- uid под которым выполняется процесс, по-умолчанию0EGID- gid под которым выполняется процесс, по-умолчанию0UMASK- по-умолчанию0002
Часовой пояс в контейнерах #
Все контейнеры поддерживают возможность задать часовой пояс, используя переменную окружения TZ - часовой пояс в формате пакета tzdata
https://www.iana.org/time-zones. Например: TZ=Europe/Moscow.
Последовательность установки решения #
Рекомендуется следующая последовательность установки ПО SVA:
- Подготовка переменных окружения и docker-compose файлов
- Подготовка постоянных мест хранения
- FileStorage для
vc-fileserver - tmpRecStore для промежуточного хранения записей вызовов
- место под данные БД mongo
- постоянное хранилище для брокера шины MQTT, если требуется
- FileStorage для
- Разворачивание docker compose стека
- Запустить брокер шины MQTT
- при необходимости настроить через веб-интерфейс
- Запустить БД MongoDB
- Запустить
janus.- При необходимости используя демо-режим (см. документацию по установке) можно проверить его работоспособность и настройки firewall
- Запустить контейнеры sva
vc-wwwvc-adminvc-auth- с этого момента должен быть доступен интерфейс администратора по адресу:
https://FQDN/console/
- с этого момента должен быть доступен интерфейс администратора по адресу:
vc-licensevc-servervc-surl- с этого момента можно делать вызовы
vc-msg- после запуска добавить созданных провайдеров в интерфейсе администратора
vc-fileservervc-geovc-historyvc-statvc-statchartvc-recordsvc-mediamerge
- Запустить брокер шины MQTT
При первой установке контейнер vc-admin должен быть запущен после успешной инициализации БД Mongo и до остальных контейнеров (согласно последовательности выше).