...
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.10.2, build c3959b1 |
Варианты установки на других дистрибутивах: https://docs.docker.com/engine/installation/
На 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" |
Теперь Вы можете сохранить файл и обновить загрущик с помощью команды:
...
Установка 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 version: 1.6.2, build 4d72027 |
Варианты установки на других дистрибутивах: https://docs.docker.com/compose/install/
Подготовка к запуску webitel
...
Tip |
---|
Текущая стабильная версия Webitel 3.211.06 |
Получение файлов:
Code Block |
---|
$ sudo gpasswd -a ${USER} docker $ cd /opt $ sudo mkdir /opt/webitel curl -L$ sudo git clone https://github.com/webitel/orchestration/archive/v3.2.0.tar.gz | sudo tar xz mv orchestration-3.2.0 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 значения в файле binenv/setenv.shenvironment:
- WEBITEL_HOST - DNS имя сервера с Webitel. В новых версиях используется nginx, как proxy и http сервер. Вам необходимо указать полное 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 |
---|
Бесплатный StartSSL сертификат для wss |
Запуск Webitel
Имея готовый файл с описанием контейнеров, мы можем скачать образы c Docker Hub на сервер и создать контейнеры.
...
Начиная с версии 3.2.0, все логи контейнеров webitel (как и ключевые поля статистики для Аналитика и отчетность) сохраняются в базе elasticsearch. Прежде чем стартовать webitel, мы запускаем elasticsearch и fluentd.
Code Block |
---|
./bin/bootstrap.sh elf up -d |
Скрипт bin/bootstrap.sh разработан, что бы упростить работу с контейнерами.
Основные команды:
Команда | Описание |
---|
elf
Управление elasticsearch и fluentd.
Запуск в режиме разработчика, когда открыты все порты всех контейнеров.
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 up -d |
...
Code Block |
---|
./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/ |
Теперь можем переходить к разделу Первичная настройка системы.