Подготовка
Что решить до запуска
Установщик спросит об этом сам, но ответы стоит подготовить заранее.
- Сколько серверов и кто из них мастер
-
Мастер держит домен платформы и отвечает за конфигурацию. Остальные узлы подключаются к нему, зная адреса 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, попавший в команду по ошибке, не привёл к неполной установке.