Установка на slave-сервер с помощью инсталлятора

Обзор

Если при установке master-сервера были перечислены дополнительные серверы, проходить мастер здесь необязательно: master напечатал готовую неинтерактивную команду для каждого из них — с ролью узла, адресом mic, базой и NFS-сервером мастера.
Команды сохранены рядом с логом master-сервера в файле .cmd; выполнить нужную остаётся на этом сервере.

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

cd /tmp/era_installer

bash install_ssh.sh --ui=text

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

rsync -avrh --progress -e "ssh -p PORT" /tmp/era_installer USER@HOST:/tmp

ssh USER@HOST -p PORT

cd /tmp/era_installer

bash era/scripts/install.sh --ui=text

Ключ --ui=text задаёт текстовый режим: вопросы задаются построчно, ответ подтверждается клавишей Enter.
То же самое можно запустить через диспетчер: bash era/era.sh install --ui=text.

ВАЖНО! Конфигурация с этим сервером должна быть создана и активирована на мастере до установки узла: узел ищет свою роль в применённой конфигурации.
Если конфигурации нет, установка дойдёт до конца, но платформа сообщит ServInit. Connect to All MICIC fail, а инсталлятор завершится с кодом 5.

Алгоритм процесса установки

1) Запустить скрипт установки: на локальной машине bash install_ssh.sh --ui=text, на сервере bash era/scripts/install.sh --ui=text.

При запуске с локальной машины сначала спрашиваются данные подключения, затем инсталлятор копирует файлы на сервер и продолжает опрос уже там.

Адрес сервера: 192.168.0.116
Пользователь ssh: admin
Порт ssh [22]:
Файл ключа ssh:

2) Дождаться копирования файлов на сервер.

Скопировать era/image/era_1_11_0-2026_8_31_1_docker.tar.gz (1.2G)? (д/н) [y]:

3) Экран Сервер и роль. Роль — не мастер, поэтому вместо домена спрашиваются адреса mic.

== Сервер и роль ==
IP-адрес платформы: 192.168.0.116
Постфикс имени инстанса: _01
Путь к данным [/opt]:
Имя сервера в конфигурации [box-116]: srv02
Это мастер-сервер? (д/н): n
Mic-адреса: mic1@192.168.0.115
PSK cookie [era2020key]:

Постфикс следует задать тот же, что и на master-сервере той же конфигурации.

Имя сервера должно совпадать с именем этого сервера в конфигурации, созданной на мастере.

Mic-адреса — адреса инфраструктурных микросервисов уже развёрнутого кластера, через запятую без пробелов.
Имя роли берётся из конфигурации платформы: если в ней роль называется mic1, адрес пишется как mic1@192.168.0.115, а не mic@….
Можно перечислить несколько адресов — подключение будет пробоваться последовательно.

PSK cookie должен совпадать с заданным при установке master-сервера.

4) Экран Пакеты и сеть. Указать, есть ли на сервере доступ к интернету и нужен ли прокси.

== Пакеты и сеть ==
Разрешить установщику скачивать пакеты из интернета? (д/н) [y]:
Использовать http/https-прокси? (д/н) [n]:

Если доступ к интернету отсутствует, ответьте n и при непустом списке недостающих пакетов выполните установку пакетов на сервере.

5) Экран PostgreSQL — режим.

== PostgreSQL -- режим ==
Устанавливать PostgreSQL? (д/н) [y]: n

При многосерверной установке экземпляры СУБД устанавливаются лишь на выборочных серверах в соответствии с планом развертки: первый из них — master-сервер, второй — любой другой.
На остальных серверах отвечайте n — тогда будут запрошены параметры подключения к уже работающему серверу PostgreSQL.

Если этот сервер выбран под вторую СУБД, ответьте y и укажите роль Реплика (recovery):

Где разместить PostgreSQL?
   1) В хосте
   2) В docker-контейнере
Выберите номер: 1
Роль этого инстанса PostgreSQL
   1) Мастер
   2) Реплика (recovery)
Выберите номер: 2

Пароли пользователей postgres, platformpgadmin и era_replica должны совпадать с заданными на master-сервере — иначе потоковая репликация не поднимется.

6) Экран PostgreSQL — доступ. Для сервера без своей СУБД указываются адрес и порт готового сервера.

== PostgreSQL -- доступ ==
IP-адрес сервера PostgreSQL: 192.168.0.115
Порт PostgreSQL [5441]:
Пользователь БД для платформы [platformpgadmin]:
Пароль пользователя БД platformpgadmin [••••••]:

Значения должны совпадать с заданными при установке master-сервера.

7) Экран Тома платформы. Указать каталоги в хосте под тома контейнера.

== Тома платформы ==
Том для /var/lib/era [/opt/era_01/lib]:
Том для /var/log/era [/opt/era_01/log]:
Том для /var/lib/era_files/local [/opt/era_01/local]:
Том для /var/lib/era_files/rectemp [/opt/era_01/rectemp]:
Том для /var/lib/era_files/logstore [/opt/era_01/logstore]:
Том для /var/lib/era_files/syncroot [/opt/era_01/syncroot]:
Том для /var/lib/era_files/a [/opt/era_01/a]:
Том для /var/lib/era_files/b [/opt/era_01/b]:
Том для /var/lib/era_files/c [/opt/era_01/c]:

Следует изменить значения по умолчанию, если планом развертки предусмотрено размещение в специфическом смонтированном разделе.
Назначение каталогов описано в инструкции по установке master-сервера.

8) Экран NFS. Указать клиентские каталоги и адрес сервера NFS.

== NFS ==
Локальный каталог для /var/lib/recpath [/opt/era_01/era_recpath]:
Локальный каталог для /var/lib/siteshare [/opt/era_01/era_siteshare]:
Локальный каталог для /var/lib/globalshare [/opt/era_01/era_globalshare]:
Поднять на этом хосте NFS-сервер? (д/н) [n]: n
Адрес сервера NFS: 192.168.0.115

Адрес сервера NFS следует задать тот же, что и при установке master-сервера.
Если сервер NFS поднят на другом хосте с иным постфиксом, укажите пути к его каталогам явно — ключами --recpathnfssrvdir, --sitesharenfssrvdir, --globalsharenfssrvdir: умолчание считается из постфикса этого сервера и при разных постфиксах не подходит.

Роль NFS-сервера на узле включать не следует.

9) Экран Параметры ядра.

== Параметры ядра ==
Переиспользовать соединения в TIME_WAIT? (д/н) [n]:

10) Экран Проверьте параметры установки. Проверить сводку и план, выбрать «Продолжить».

Что делаем?
   1) Продолжить -- начать изменение сервера  [*]
   2) Изменить...
   ...
Выберите номер:

До этого момента сервер не изменялся.

11) Дождаться выполнения и отчёта контейнера.

== Применение ==
  -> [1/6] Каталоги-тома
  ...
Ждём до 60 с отчёта контейнера об инициализации.
Контейнер инициализирован: Install server success!

Если платформа ответит ServInit. Connect to All MICIC fail, значит мастер не видит этот сервер в применённой конфигурации: проверьте, что конфигурация создана, активна и содержит сервер с таким именем и адресом.

12) Посмотреть форму «что изменилось на сервере»: она печатается сразу после применения.

== Что изменилось на сервере ==
  [ ok ] Каталоги-тома                      12 в /opt
  [ ok ] Общие каталоги                     смонтировано: 3
  [ ok ] Параметры ядра                     fs.inotify.max_user_watches = 10000000
  [ ok ] Контейнер платформы                era_01, запущен
  [ ok ] Инициализация платформы            Install server success!

[FAIL] означает, что изменение не удалось: инсталлятор завершится с кодом 5, даже если все команды отработали.
Чаще всего это несмонтированный каталог NFS — он не прерывает установку, и без формы его отказ был бы виден только в логе.
Подробнее: manuals:era_installer/install-local.adoc#era-installer-install-local-changes.

13) Сохранить команды, напечатанные в конце: переустановки и удаления этого сервера.
Рядом с логом остаются файл ответов .params и готовая команда .cmd с правами 0600.

Установка завершена!
Можно переходить к установке системы на следующий сервер!
Если система установлена на все серверы, можно переходить к созданию и настройке доменов.