...
Tip | ||
---|---|---|
| ||
Рекомендуем использовать Debian JessieStretch либо Ubuntu Server. Только 64bit! Ниже приведенная инструкция подходит, в первую очередь, этим двум дистрибутивам. |
...
Самый простой способ установки - это использование скрипта:
Code Block |
---|
# apt-get install curl ntp # curl -sSL https://get.docker.com/ | sh # docker --version Docker version 1.6.2, build 7c8fca2 |
На Ubuntu Вы можете получить сообщение:
No Format |
---|
WARNING: Your kernel does not support cgroup swap limit. WARNING: Your
kernel does not support swap limit capabilities. Limitation discarded. |
Что бы это исправить, откройте файл /etc/default/grub
и присвойте значение переменной GRUB_CMDLINE_LINUX
:
Code Block |
---|
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1" |
Теперь Вы можете сохранить файл и обновить загрущик с помощью команды:
Code Block |
---|
$ sudo update-grub |
Варианты установки на других дистрибутивах: https://docs.docker.com/engine/installation/
Установка docker-compose
Поскольку Webitel это комплекс из нескольких приложений, рекомендуем использовать docker-compose. Установка:
Code Block |
---|
$# sudocurl apt-get update $ sudo apt-get upgrade $ sudo apt-get install python-pip $ sudo pip install -U docker-compose $L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # chmod +x /usr/local/bin/docker-compose # docker-compose --version docker-compose 1.2.0 |
...
Команда | Описание |
---|---|
up | Создать либо пересоздать контейнеры. Для запуска контейнера в фоновом режиме, необходимо добавить ключ -d |
stop | Остановить контейнеры |
start | Запустить созданные раньше контейнеры |
rm | Удалить контейнеры |
pull | Скачать последнюю версию образов |
ps | Вывести список контейнеров и их состояние |
logs | Отобразить вывод логов из контейнеров |
Подготовка к запуску webitel
Для запуска Webitel Вам необходимо скачать подготовленные для docker-compose
файлы, внести свои правки и запустить. Будим производить в /opt/webitel
.
Tip |
---|
Текущая стабильная версия Webitel 3.11.6 |
Получение файлов:
Code Block |
---|
$ sudo gpasswd apt-get install gita ${USER} docker $ cd /opt $ sudo mkdir /opt/webitel $ sudo git clone httphttps://stashgithub.com/webitel.com/scm/wp/compose.git webitel |
В склонированном репозитории находится файл docker-compose.yml, который описывает параметры для создания контейнеров, а так же три *.env
файла с переменными для контейнеров.
Конфигурационные файлы
Поскольку установка производиться на одном сервере, во всех переменных с IP адресами, необходимо указывать IPv4 адрес Вашего сервера.
common.env
В файле находятся общие переменные для контейнеров:
- SSL - включить поддержку SSL. Cтавим
false
. - TOKEN_KEY - ключ для создания токенов
- CONSOLE_PASSWORD - пароль пользователя
root
. По умолчанию, используется словоROOT_PASSWORD
. - LOGLEVEL - уровень вывода логов. Возможные варианты: trace, debug, warn, error, info. По умолчанию,
warn
. - LOGSTASH_ENABLE и LOGSTASH_HOST - Для использования logstash сервера сбора логов.
- FS_HOST - IP, на котором запущен FreeSWITCH.
- CONSOLE_HOST - IP, на котором запущен Webitel Console.
- MONGODB_HOST - IP, на котором запущена база MongoDB.
- CDR_HTTP - Протокол подключения к серверу статистики. По умолчанию,
http
. - CDR_SERVER - IP либо имя хоста, а так же порт подключения к серверу статистики.
cdr.env
В файле находятся переменные для контейнера сервера статистики и медиафайлов:
- STORAGE_TRANSPORT - Какой транспорт использовать для хранения файлов:
s3
либоfile
. По умолчанию,file
. - STORAGE_ROOT - Для файлового хранилища - путь к файлам, для S3 хранилища - название корзины. По умолчанию,
recordings
. - S3KEYID, S3KEYSECRET и S3_REGION - Параметры подключения к Amazon S3 хранилищу.
- ACL_UPLOAD - С каких IP разрешить загрузку записей разговоров на сервер. Можно указать только IP адрес, FreeSWITCH. По умолчанию, разрешено с любых IP -
0.0.0.0/0
.
freeswitch.env
В файле находятся переменные для контейнера с FreeSWITCH:
...
/orchestration.git
$ sudo chown -R ${USER}:docker /opt/webitel /opt/orchestration
$ cd /opt/orchestration
$ git checkout v3.11.6 |
В результате, мы получили копию подготовленных скриптов для запуска и управления контейнерами Webitel.
Конфигурационные файлы
В директории /opt/orchestration/env поставляются файлы конфигурации с расширением *.example. Вам необходимо скопировать эти файлы без расширения. Самый простой способ - выполнить команду:
Code Block | ||
---|---|---|
| ||
$ cd /opt/orchestration/env
$ for f in *.example; do cp $f `basename $f .example`; done |
Прежде, чем приступить к запуску, нам нужно изменить 2 значения в файле env/environment:
- WEBITEL_HOST - необходимо указать полное FQDN имя или скрипт попытается определить IP адрес вашего сервера webitel автоматически.
- WEBITEL_PASS - пароль для пользователя root. Пароль может содержать символы латинского алфавита, цифры, а так же знаки: + - _ .
Параметры Linux:
Code Block | ||
---|---|---|
| ||
$ sudo sh -c "cat /opt/orchestration/etc/sysctl.conf >> /etc/sysctl.conf"
$ sudo sysctl -p |
Для Ubuntu необходимо дополнительно выполнить:
Code Block | ||
---|---|---|
| ||
$ sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.tcpdump |
Добавить Webitel в автозагрузку:
Code Block | ||
---|---|---|
| ||
$ sudo cp /opt/orchestration/etc/cron.d/webitel /etc/cron.d/ |
Tip |
---|
...
Запуск Webitel
Имея готовый файл с описанием контейнеров, мы можем скачать образы c Docker Hub на сервер и создать контейнеры.
Скачиваем нужные нам образы:
Code Block |
---|
$ cd /opt/webitel
$ sudo docker-compose pull |
Создаем контейнеры:
Основные команды:
Команда | Описание |
---|---|
fs | Запустить fs_cli для подключения к консоли FreeSWITCH |
backup | Выполняет резервное копирование базы данных и конфигурации webitel |
- | не указывая ничего, запускаем webitel |
Аргументы:
Аргумент | Описание |
---|---|
up | Создать либо пересоздать контейнеры. Для запуска контейнера в фоновом режиме, необходимо добавить ключ -d |
stop | Остановить контейнеры |
start | Запустить созданные раньше контейнеры |
rm | Удалить контейнеры |
pull | Скачать последнюю версию образов |
ps | Вывести список контейнеров и их состояние |
logs | Отобразить вывод логов из контейнеров |
Запускаем webitel:
$ cd /opt/orchestration
Code Block |
---|
./bin/bootstrap.sh pull
./bin/bootstrap.sh |
Code Block |
$ sudo docker-compose up -d |
Проверяем, что все запустилось и работает:
Code Block |
---|
$ sudo docker-compose ps |
...
./bin/bootstrap.sh ps |
Создание сертификата X.509v3
Code Block |
---|
sudo -s
docker exec -it freeswitch openssl req -new -newkey rsa:2048 -x509 -sha256 -days 900 -nodes -keyout /certs/key.pem -out /certs/cert.pem
cat /opt/webitel/ssl/key.pem /opt/webitel/ssl/cert.pem > /opt/webitel/ssl/dtls-srtp.pem |
Что бы перезапустить полностью все контейнеры webitel, используйте последовательность:
Code Block |
---|
./bin/reboot.sh |
Наше приложение готово к работе.
Приложение | URL |
---|---|
Webitel WebClient | http://наш_домен/ |
WebSocket сервер и RESTFul API | http://наш_домен/engine/ |
WebRTC подключение | http://наш_домен/verto/ |
Kibana | http://наш_домен/kibana/ |
Документация по API | http://наш_домен/docs/ |
Теперь можем переходить к разделу Первичная настройка системы.
Info |
---|