Открыть меню
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Установка платформы в различных конфигурациях

Материал из Платформа Эра. Документации

Общая информация

Описание

Установка системы производится на серверы с ОС Linux.

Первый сервер в рамках установки становится мастером, все последующие серверы подцепляются к нему.

После установки на мастер сервер создается комплексная распределенная конфигурация, включающая все выделенные под установку серверы.

Система на каждом из серверов разворачивается в docker-контейнере без внешней оркестрации.

Начальная установка требует подключения к СУБД, и предлагает установить экземпляр(ы) PostgreSQL на этих же серверах.

В частном случае система устанавливается на одном сервере (он же мастер), и в этом случае с помощью инсталлятора СУБД также может быть развернута в отдельном docker-контейнере.

В случае установки системы на нескольких серверах предполагается необходимость резервирования сервера БД, для этой цели разворачиваются два (или более) экземпляров на нескольких серверах, причем только первый инстанс СУБД разворачивается в режиме мастера, а последующие в режиме потоковой репликации мастера.

Варианты

Варианты дистрибутивов операционных систем:

  • Linux Debian 10
  • Linux Debian 11
  • Linux Ubuntu Server 20
  • Astra Linux
  • RedOS

Варианты по количеству серверов:

  • Установка на один или несколько серверов.

Варианты по наличию подключения к интернет на серверах:

  • На сервере с доступом к сети интернет необходимые пакеты скачиваются и устанавливаются автоматически.
  • На сервере без доступа к сети интернет требуется проведение предварительной операции установки пакетов.

Варианты по используемым серверам БД PostgreSQL:

  • Установка системы с использованием существующих серверов БД PostgreSQL (версии 12+).
  • Установка вместе с PostgreSQL
    • Один экземпляр на одном из имеющихся серверов в docker-контейнере или в хосте.
    • Несколько экземпляров на имеющихся серверах с потоковой репликацией, контроллером репликаций (автоматическое переключение recovery в master и обратно).
  • Установка с подключением к внешним серверам БД PostgreSQL.

Варианты по файловым хранилищам:

  • NFS на внешнем носителе.
  • VRRP-хранилище (хранилище поверх Virtual Router Redundancy Protocol).
  • S3-хранилище (настраивается индивидуально для каждого домена).
  • Локальное размещение на тех же серверах (возможно в mount-разделах).
  • Локальное размещение на тех же серверах с синхронизацией.

Общий план установки и начальной настройки

1. Подготовка

1.1) Определиться с местом расположения СУБД - внешняя установка, или на этих же серверах, на каких именно серверах, в контейнере или в хосте.

1.2) Определиться с названием мастер-домена.

1.3) Определиться с местом расположения хранилищ (БД, хранилище логов, хранилище записей, рабочие каталоги микросервисов и NFS каталоги).

1.4) Определить локальные адреса серверов, через которые они будут связаны.

1.5) Выбрать пароли для учетных записей PostgreSQL: postgres, erapgadmin, era_replica.

1.6) Выбрать пароли для учетных записей администраторов системы.

1.7) Выбрать уникальное значение cookie для связи между серверами.

1.8) Провести начальную подготовку серверов (настроить ОС), убедиться что серверы доступны по ssh.

2. Установка платформы (инфраструктурный и коммуникационный слой)

2.1) Подготовить инсталлятор (era_installer).

2.1.1) Установка на сервер без доступа к сети интернет требует предварительную установку пакетов.

2.1.2) Установка на сервер с доступом к интернет может производиться с удаленной машины, если доступный адрес сервера совпадает с его локальным адресом для установки системы. В противном случае необходимо разместить инсталлятор на сервере и производить установку через ssh-подключение.

2.2) Установить систему на мастер-сервер с помощью sh-инсталлятора (мастер сервер - категория имеющая отношение только к установке).

2.3) Создать и активировать конфигурацию.

2.4) Установить систему на прочие серверы, входящие в кластер, с помощью sh-инсталлятора.

При возникновении сбоя в установке, процесс необходимо начать заново.

Этому должна предшествовать очистка хвостов. Для этого можно использовать скрипт "uninstall_ssh.sh" удаленно или "uninstall.sh" локально, позволяющий детально указывать на расположение артефактов удаляемого инстанса. Если ваша установка проводилась в каталоги по умолчанию, то можно использовать скрипт "remove.sh" из каталога инсталлера "/tmp/era/scripts".

Установка может производиться одной командой с передачей всех параметров. Тогда в ходе установки достаточно будет лишь несколько раз ввести пароли по запросу.

Список параметров доступен командой bash install_ssh.sh --help. Дополнительным бонусом является сохранение командной строки запуска для повторного использования.

3. Начальная настройка мастер-домена

3.1) Открыть в браузере приложении "Настройки".

3.2) При необходимости скорректировать конфигурацию и активировать новую.

3.3) Загрузить лицензию, зарезервировать количественные показатели.

3.4) Изменить пароль администратора, добавить пользователей при необходимости.

3.5) Создать домен первого уровня и передать в него количественные лицензии.

3.6) Настроить черный/белый список IP-адресов для SBC-фильтра.

3.7) Загрузить сертификат SSL или настроить систему на его автоматическую выписку с помощью ACME LetsEncrypt.

3.8) Убедиться, что система не выдает предупреждений.

4. Настройка рабочего домена

4.1) Переключиться в рабочий домен или авторизоваться под учетной записью администратора в рабочем домене и открыть веб-приложение "Настройки". Выбрать расширенный режим.

4.2) Зарезервировать для использования часть количественных лицензий, переданных из родительского домена.

5. Установка продуктового слоя платформы (информационный и процессинговый слой)

5.1) В приложении "Настройки" рабочего домена

5.1.1) создать канал интеграции (задать роль admin, пользователя Administrator, доступ к API *), сохранить сгенерированный токен;

5.1.2) добавить к учетным записям пользователей администраторов роли builder_admin, callcenter_admin, callcenter_supervisor.

5.2) Подготовить инсталлятор (era_product.zip), распаковать, запустить скрипт установки, передав ему параметры установленной системы, дождаться его завершения.

5.3) Убедиться, что в меню приложений появились новые приложения, микросервисы активны.

5.4) Проверить функциональность телефонии и отображение данных в дашбордах.

6. Начальная настройка телефонии

6.1) В рабочем домене импортировать настройки или создать минимально необходимые сущности:

6.1.1) учетные записи пользователей,

6.1.2) учетные записи провайдеров,

6.1.3) правила маршрутизации,

6.1.4) правила нормализации внешних номеров,

6.1.5) сценарии ivr,

6.1.6) сервисные коды,

6.1.7) правила записи.

6.2) Протестировать звонки: между пользователями, на сценарий IVR, на внешний номер.

Операции

Table 1. Операции
Название Ориентировочное время выполнения (мин)
Начальная настройка сервера 10
Установка пакетов на сервере без доступа к сети интернет 10
Установка master-сервера 10
Создание и активация конфигурации 5
Установка slave-сервера 10
Начальная настройка мастер-домена 5
Создание рабочего домена 3
Установка продуктового слоя платформы 10
Настройка телефонии для первого звонка 5
Проверить отсутствие отклонений в мониторинге системы system/state 1

Подготовка и предварительная настройка сервера

Необходимо установить базовые утилиты для установки системы:

apt-get update
apt-get install nano zip unzip curl wget

Односерверная конфигурация

Скрипт для локальной установки односерверной конфигурации платформы:

bash era.sh install --usedefaults --ipaddress=127.0.0.1 --postfix= --master=y --masterdomain=era-platform.ru --dopginstall=y --usereplic=n --pgmode=d --usedockerhubpgimage=y --pgport=5452 --pskcookie=123456

Для получения справки по скрипту установки используйте:

bash install_ssh.sh —help

Двухсерверная конфигурация в одном дата-центре

Двухсерверная конфигурация в одном дата-центре без внешнего арбитра (без кворума).

Особенности работы:

  • Высокая доступность между серверами. Сетевая доступность между серверами обеспечивается непрерывно с задержкой не более 1 мс. Любой потерянный пакет считается падением сервера;
  • Ресурсов серверов достаточно для полноценной работы платформы на любом из серверов. При их совместной доступности платформа использует ресурсы обоих серверов;
  • В случае выхода из строя любого из серверов, конфигурация максимально быстро (в течение пары секунд) переезжает на оставшийся сервер;
  • Система переходит в режим односерверной конфигурации, при котором может работать неопределенно долго;
  • Двухсерверная конфигурация администрируется так же, как и односерверная. Особенностью является случайное распределение лог-файлов между серверами. Рекомендуется использовать встроенный сборщик логов.
  • Файловое хранилище не реплицируется. Записи будут храниться на одном из серверов (но только на одном). В случае выхода из строя одного из серверов, записи этого сервера будут временно недоступны до восстановления работы.

Установка “первого” сервера

bash install_ssh.sh \  --user=era \  --port=22 \  --host=188.1.1.1 \  --ipaddress=192.168.0.101 \  --postfix= \  --master=y \  --masterdomain=era-platform.ru \  --srvname=srv1 \  --dopginstall=y \  --usereplic=y \  --pgmode=h \  --pghostmode=m \  --pgport=5441 \  --pgpostgrespwd=PgPoStGrEsPwD \  --pgerapwd=PgErApWd \  --pgreplicapwd=PgRePlIcApWd \  --pskcookie=PsKcOoKiE \  --usedefaults

Обратите внимание, что установка на сетевой интерфейс 127.0.0.1 невозможна в двухсерверной конфигурации.

Установка “второго” сервера.

bash install_ssh.sh \  --user=era \  --port=22 \  --host=188.1.1.2 \  --ipaddress=192.168.0.102 \  --postfix= \  --master=n \  --micaddress=mic1@192.168.0.101 \  --srvname=srv2 \  --dopginstall=y \  --usereplic=y \  --pgmode=h \  --pghostmode=r \  --pgport=5441 \  --pgpostgrespwd=PgPoStGrEsPwD \  --pgerapwd=PgErApWd \  --pgreplicapwd=PgRePlIcApWd \  --pskcookie=PsKcOoKiE \  --usedefaults

где:

  • user=era — имя пользователя для удаленной установки на сервер. Используется только при удаленной установке.
  • port=22 — порт сервера для удаленной установки. Используется только при удаленной установке.
  • host=188.1.1.2 — ip-адрес удаленного сервера для удаленной установки,
  • ipaddress=192.168.0.101 и 192.168.0.102 — ip-адреса будущих серверов платформы соответственно,
  • postfix — название контейнера (пустое для одного экземпляра платформы на сервере),
  • master=y и n — признак мастер-сервера или нет,
  • masterdomain=era-platform.ru — имя FQDN мастер-домена. Используйте только строчные буквы. Изменение мастер-домена очень трудозатратно.
  • micaddress=mic1@192.168.0.101 — ip-адрес “первого” сервера для “второго”,
  • srvname=srv1 и srv2 — имя сервера для внутреннего использования,
  • dopginstall=y - Yes — устанавливать или нет PostgreSQL,
  • usereplic=y - Yes — использовать ли репликацию PostgreSQL,
  • pgmode=h - Host — режим установки PostgreSQL непосредственное на сервер (не Docker);
  • pghostmode=m или r — master и reserve. Режиме работы PostgreSQL соответственно;
  • pgport=5441 — порт работы PostgreSQL. Используется отличный от 5432, так как будет занят экземпляром по умолчанию;
  • pgpostgrespwd=PgPoStGrEsPwD — пароль для пользователя postgres;
  • pgerapwd=PgErApWd — пароль для пользователя erapgadmin;
  • pgreplicapwd=PgRePlIcApWd — пароль для работы репликации PostgreSQL;
  • pskcookie=PsKcOoKiE — уникальная строка для работы репликации (одинаковая для обоих серверов);
  • usedefaults — использовать прочие параметры по-умолчанию.

Таблица распределения микросервисов между серверами

Group RoleId Ports Server 1 Server 2
5441 DB DB
10 callstore callstore
20 mdc mdc
30 hunt hunt
40 reg reg
50 rsv rsv
60 sel sel
70 statestore statestore
80 store store
90 usr usr
100 wssubscr wssubscr
110 logstore logstore
120 mware mware
130 ic ic
140 mic mic
150 rpci rpci
160 rpco rpco
200 mix mix
210 recmover recmover
220 SS220 svc svc
230 80, 443 ws ws
240 SS240 5090 b2b b2b
250 SS250 5085 conf conf
260 SS260 5080 – 5083 esg esg
270 SS270 5095 ivr ivr
280 SS280 5060 – 5063 sg sg
370 SS370 5086 prompt prompt
290 SS290 2954 .. 2959 mgc mgc
300 SS300 2944 mg*2 mg*2
310 SS310 dms dms
320 SS320 msvc msvc
330 SS330 im im
340 SS340 email email
350 SS350 fs fs
360 SS360 ap ap
380 SS380 dfsync dfsync
390 SS390 vmail vmail
400 SS400 broker broker
410 SS410 -domstore -domstore
420 SS420 -meet -meet
430 SS430 -redirect -redirect
440 SS440 -usercenter -usercenter

где:

  • жирным - потенциально высоконагруженный микросервис,
  • зеленым - активный микросервис (active-active),
  • красным - активный микросервис (active-passive),
  • черным - равномерно нагруженные микросервисы.

Возможная схема реализации конфигурации

Удаление сервисов

При необходимости деинсталлировать сервисы (например, после неудачной установки)

bash era.sh uninstall

После запуска запустится Wizard, который позволит настроить параметры деинсталляции.

Деинсталляция со стандартными параметрами (без Wizard'а):

bash era.sh uninstall --usedefaults --eracontainername=era_01 --pgcontainername=postgres_01 --erainstancedatapath=/opt/era_01 --douninstallpg=y --pgmode=d

Где:

Параметр Значение
eracontainername Имя docker-контейнера Эра
pgcontainername Имя docker-контейнера Postgres
erainstancedatapath Путь к данным контейнера Эра
douninstallpg Деинсталлировать Postgres
pgmode Режим работы postgres (d=docker)