...
Code Block |
---|
# apt-get install curl # curl -sSL https://get.docker.com/ | sh # docker --version Docker version 1.810.12, build d12ea79c3959b1 |
Варианты установки на других дистрибутивах: https://docs.docker.com/engine/installation/
На Ubuntu Вы можете получить сообщение:
...
Code Block |
---|
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install python-pip
$ sudo pip install -U docker-compose
$ docker-compose --version
docker-compose version: 1.4.0 |
Основные команды docker-compose
:
Команда | Описание |
---|---|
up | Создать либо пересоздать контейнеры. Для запуска контейнера в фоновом режиме, необходимо добавить ключ -d |
stop | Остановить контейнеры |
start | Запустить созданные раньше контейнеры |
rm | Удалить контейнеры |
pull | Скачать последнюю версию образов |
ps | Вывести список контейнеров и их состояние |
logs | Отобразить вывод логов из контейнеров |
6.2, build 4d72027 |
Варианты установки на других дистрибутивах: https://docs.docker.com/compose/install/
Подготовка к запуску webitel
Для запуска Webitel Вам необходимо скачать подготовленные для docker-compose
файлы, внести свои правки и запустить. Будим производить в /opt/webitel
.
Tip |
---|
Текущая стабильная версия Webitel 3.2.0 |
Получение файлов:
Code Block |
---|
$sudo sudogpasswd apt-get install git $ a ${USER} docker cd /opt $sudo sudo git clone httpmkdir /opt/webitel curl -L https://stashgithub.com/webitel.com/scmorchestration/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:
- CDR_SERVER - IP либо имя хоста, а так же порт подключения к серверу статистики и записей разговоров.
- ACR_SERVER - IP либо имя хоста, а так же порт подключения к серверу маршрутизации.
- CONF_SERVER - IP либо имя хоста, а так же порт подключения к серверу Webitel Console для получения XML конфигурации.
Запуск Webitel
Имея готовый файл с описанием контейнеров, мы можем скачать образы Docker на сервер и создать контейнеры.
Скачиваем нужные нам образы:
Code Block |
---|
$ cd /opt/webitel
$ sudo docker-compose pull |
Создаем контейнеры:
archive/v3.2.0.tar.gz | sudo tar xz
mv orchestration-3.2.0 orchestration
sudo chown -R ${USER}:docker /opt/webitel /opt/orchestration
cd /opt/orchestration |
В результате, мы получили копию подготовленных скриптов для запуска и управления контейнерами Webitel.
Конфигурационные файлы
Прежде, чем приступить к запуску, нам нужно изменить 2 значения в файле bin/setenv.sh:
- WEBITEL_HOST - DNS имя сервера с Webitel. В новых версиях используется nginx, как proxy и http сервер. Вам необходимо указать полное FQDN имя, а не просто IP адрес.
- WEBITEL_PASS - пароль для пользователя root.
Tip |
---|
Запуск 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. |
dev | Запуск в режиме разработчика, когда открыты все порты всех контейнеров. |
fs | Запустить fs_cli для подключения к консоли FreeSWITCH |
- | не указывая ничего, запускаем webitel |
Аргументы:
Аргумент | Описание |
---|---|
up | Создать либо пересоздать контейнеры. Для запуска контейнера в фоновом режиме, необходимо добавить ключ -d |
stop | Остановить контейнеры |
start | Запустить созданные раньше контейнеры |
rm | Удалить контейнеры |
pull | Скачать последнюю версию образов |
ps | Вывести список контейнеров и их состояние |
Запускаем webitel:
Code Block |
---|
./bin/bootstrap.sh pull
./bin/bootstrap.sh |
Code Block |
$ sudo docker-compose up -d |
Проверяем, что все запустилось и работает:
Code Block |
---|
$ sudo docker-compose./bin/bootstrap.sh ps |
Наше приложение готово к работе.
...