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

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

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

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

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

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)