Что делает установщик

платформа era поставляется образом docker. Установщик разворачивает её на сервере: ставит docker, при необходимости PostgreSQL, создаёт каталоги под данные, настраивает параметры ядра и общие каталоги, загружает образ и запускает контейнер.

Установщик работает в три фазы и никогда не смешивает их.

  1. Сбор. Задаёт вопросы или берёт ответы из командной строки и файла ответов. На этой фазе он ничего не меняет: только читает состояние сервера, чтобы предупредить о проблемах заранее.

  2. Подтверждение. Показывает сводку введённого и список того, что собирается сделать, вплоть до перечня системных файлов, которые будут изменены.

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

До вашего согласия на экране подтверждения на сервере не выполняется ни одна изменяющая команда. Отказ на этом экране не оставляет следов.

Из чего состоит поставка

Поставка — это каталог (обычно распакованный zip-архив) с точками входа в корне и каталогом era рядом с ними.

Что Зачем

era/scripts/install.sh, era/scripts/uninstall.sh, era/scripts/install_pg.sh, era/scripts/gen_container_cmd.sh

Команды, выполняемые на том сервере, где вы находитесь.

install_ssh.sh, uninstall_ssh.sh, install_pg_ssh.sh, gen_container_cmd_ssh.sh

То же самое, но для удалённого сервера: запускаются с вашей машины.

era/era.sh

Диспетчер: bash era/era.sh install …​ — то же, что bash era/scripts/install.sh …​.

era/image/

Образ платформы (era_*.tar.gz) и, если нужно, образ PostgreSQL.

era/assets/

Продуктовый слой (era_product_*.zip), если он используется.

era/scripts/

Точки входа этого сервера и внутренности установщика: библиотеки, каталоги сообщений, матрицы ОС. Из перечисленного вам нужны только четыре команды выше — остальное трогать не требуется.

logs/

Логи прогонов. Появляется при первом запуске.

info.txt

Краткая выжимка этой документации — то же самое на одной странице.

Имя файла образа не зашито в код: подойдут era_*.tar.gz, infinity_*.tar.gz, incoplax_*.tar.gz. Если образов несколько, задайте нужный ключом --eradockerimagepath.

Инстанс и постфикс

На одном сервере может работать несколько независимых установок платформы. Их различает постфикс — строка, которую вы задаёте ключом --postfix и которая приписывается к именам.

Сущность Имя

Контейнер платформы

era<постфикс>

Контейнер PostgreSQL

postgres<постфикс>

Каталог данных инстанса

/opt/era<постфикс>

Юнит systemd для кластера в хосте

postgresql_<версия>_era<постфикс>.service

Постфикс может быть пустым — тогда контейнер называется просто era. Принято использовать вид _11, _dev, _test.

Что установщик меняет на сервере

Полный список зависит от ответов и всегда показывается на экране подтверждения. Обычно это:

  • пакеты: docker-ce и, при установке базы в хост, postgresql<версия>-server;

  • каталоги данных внутри /opt/era<постфикс>;

  • /etc/sysctl.conf или файлы в /etc/sysctl.d/ — лимиты inotify и, по запросу, сетевые параметры;

  • /etc/exports.d/era_nfs.exports — если сервер отдаёт общие каталоги по NFS;

  • /etc/systemd/system/postgresql_*.service — если кластер ставится в хост;

  • правила firewalld — на CentOS и родственных, если он активен;

  • контейнеры docker и загруженные образы.

Автоматического отката нет. Вместо него все действия сделаны идемпотентными: повторный запуск с тем же файлом ответов безопасен и доводит установку до конца.