Подготовка

Что решить до запуска

Установщик спросит об этом сам, но ответы стоит подготовить заранее.

Сколько серверов и кто из них мастер

Мастер держит домен платформы и отвечает за конфигурацию. Остальные узлы подключаются к нему, зная адреса mic. На мастере --master=y и --masterdomain, на узлах --master=n и --micaddress.

Где будет база

Три варианта: в контейнере на том же сервере, кластером в хосте, или на отдельном сервере. В первых двух случаях --dopginstall=y и --pgmode=d либо h. В третьем --dopginstall=n и --pghost с адресом чужого сервера.

Нужна ли репликация

Если да, на мастере базы --usereplic=y, а реплика ставится отдельным запуском с --pghostmode=r.

Где общие каталоги

Платформе нужны каталоги, видимые всем узлам сайта. Один сервер может отдавать их по NFS (--installnfsserver=y), остальные монтируют (--nfsserveraddr). Для одиночного сервера ни то, ни другое не нужно.

Положить в поставку

era/image/era_*.tar.gz          образ платформы, обязательно
era/image/postgres_*.tar.gz     образ PostgreSQL, если база в контейнере
era/assets/era_product_*.zip    продуктовый слой, если используется

Образ PostgreSQL можно не класть: с ключом --usedockerhubpgimage=y установщик возьмёт его с Docker Hub. Это требует доступа в интернет с сервера.

Доступ по ssh

Нужен, если вы ставите с своей машины на удалённый сервер.

Вход по ключу — предпочтительный способ:

ssh-copy-id -p 22 user@192.168.0.10
bash install_ssh.sh --host=192.168.0.10 --user=user --sshkey=~/.ssh/id_ed25519

Вход по паролю тоже работает. Пароль спрашивается один раз за запуск: установщик держит одно соединение и переиспользует его для всех команд, rsync и запуска установки.

Учётной записи нужен sudo на удалённом сервере: сама установка идёт там с правами root.

Отпечаток сервера

Если сервер переустанавливали, ssh откажется подключаться: отпечаток в ~/.ssh/known_hosts не совпадёт. Установщик не удаляет запись молча — это отключило бы проверку подлинности. Уберите её сами:

ssh-keygen -R 192.168.0.10

или разрешите установщику сделать это явным ключом --resetknownhosts=y.

Прокси

Если сервер выходит в интернет через прокси:

bash era/scripts/install.sh --useproxy=y --ehttpproxy=http://proxy:3128

--ehttpsproxy по умолчанию повторяет значение --ehttpproxy; задайте его отдельно, только если адреса разные.

Установка без интернета

С ключом --useapt=n установщик не ставит пакеты сам. Это значит, что к моменту запуска на сервере уже должны быть:

  • docker и работающая служба docker;

  • сервер PostgreSQL нужной версии, если база ставится в хост;

  • nfs-kernel-server или nfs-utils, если сервер отдаёт каталоги.

Предпроверки перечислят то, чего не хватает, до экрана подтверждения. Образы платформы и PostgreSQL в этом режиме обязаны лежать в era/image.

Установщик попросит подтвердить такой режим (--proceedwithoutapt=y), чтобы --useapt=n, попавший в команду по ошибке, не привёл к неполной установке.