Oagapov (обсуждение | вклад) Нет описания правки |
Oagapov (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
== Подготовка сервера == | |||
Необходимо установить базовые утилиты для установки системы: | |||
apt-get update | |||
apt-get install nano zip unzip curl wget | |||
== Односерверная конфигурация == | == Односерверная конфигурация == | ||
Скрипт для локальной установки односерверной конфигурации платформы: | Скрипт для локальной установки односерверной конфигурации платформы: |
Версия от 16:23, 12 декабря 2024
Подготовка сервера
Необходимо установить базовые утилиты для установки системы:
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 | |||
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) |