Требования к серверу
Операционные системы
| Семейство | Дистрибутивы | Пакетный менеджер |
|---|---|---|
|
Debian, Ubuntu, Linux Mint |
|
|
Astra Linux |
|
|
ALT Linux |
|
|
CentOS и CentOS Stream, RedOS, AlmaLinux, Rocky |
|
Семейство определяется по ID из /etc/os-release, при необходимости уточняется по ID_LIKE — так распознаётся Linux Mint.
Что именно ставится на каждом семействе, описано в era_installer/reference-os-matrix.adoc#era-installer-os-matrix.
Если ОС не распознана, установщик останавливается на предпроверках и ничего не меняет.
bash
Нужен bash версии 4.2 или новее. Нижняя граница выбрана по CentOS 7, где стоит 4.2.46. Всё, что поддерживается из списка выше, этому требованию удовлетворяет.
Права
Установщику нужен root: он ставит пакеты, пишет в /etc и работает с docker.
Запускать можно двумя способами:
-
от
root— тогда ничего дополнительно не нужно; -
от обычного пользователя, у которого есть
sudo.
Во втором случае установщик проверяет права командой sudo -n true.
Если она проходит — sudo настроен без пароля, — ничего не спрашивается.
Если не проходит, пароль спрашивается один раз в начале фазы применения, до того как вывод команд начнёт заполнять экран; в неинтерактивном режиме спросить его негде, и запуск останавливается.
Если sudo не установлен, а вы не root, предпроверки остановят запуск.
|
Правило
При разборе |
Сеть и адреса
Платформе нужен статический адрес, существующий на интерфейсе сервера.
Он задаётся ключом --ipaddress и попадает в конфигурацию платформы.
При установке по ssh адрес подключения и адрес платформы — это разные вещи.
--host говорит, куда подключиться; --ipaddress — на каком интерфейсе будет работать платформа.
Они совпадают чаще всего, но не обязаны.
|
Если указанного адреса нет ни на одном интерфейсе, установщик предупредит об этом на экране подтверждения, но не откажется работать: адрес может появиться позже.
Порты
Установщик открывает в firewalld только те порты, которые знает наверняка:
-
порт PostgreSQL (
--pgport, по умолчанию5441) — если база ставится на этом сервере и доступна снаружи; -
порты платформы, если вы задали их ключами
--erawshttpport,--erawshttpsport,--eraerlepmdport,--eradistports,--eranodesports; -
службы
nfs,mountd,rpc-bind— если сервер отдаёт общие каталоги.
Порты, которые платформа открывает сама, установщику неизвестны: в сети host контейнер публикует их самостоятельно.
Об этом выводится предупреждение, и открыть их нужно вручную.
Подробности — в era_installer/reference-os-matrix.adoc#era-installer-os-matrix-firewall.
Место на диске
Предпроверки смотрят свободное место в каталоге данных и предупреждают, если его меньше 10 ГиБ. Ориентир для планирования:
-
образ платформы — порядка 1—2 ГиБ в архиве и столько же после загрузки в docker;
-
данные платформы растут со временем и зависят от нагрузки;
-
кластер PostgreSQL, если он на этом же сервере.
Утилиты
Обязательны на том хосте, где идёт установка: tar, grep, sed, awk, find.
Их отсутствие останавливает запуск.
Отдельно для установки по ssh нужны ssh и rsync — на вашей машине, и rsync ещё и на целевом хосте: им копируется поставка.
Проверяются они отдельной предпроверкой обёртки, а не общей: на самом сервере установка не должна отказываться из-за инструмента, которым не собиралась пользоваться — на чистом Debian rsync не стоит.
Необязательны, но полезны:
whiptailилиdialog-
включают псевдографический режим. На Debian, Ubuntu, Linux Mint, Astra Linux и других производных Debian используется
whiptail, на остальных системах —dialog: причина в том, как из окна выйти, см. era_installer/install-ssh.adoc#era-installer-install-ssh-keys. Без подходящего инструмента установщик работает в текстовом режиме — это полноценный режим, а не аварийный. curl-
нужен при установке пакетов из интернета. При
--useapt=nне требуется. python3-
нужен только команде
era/scripts/gen_container_cmd.sh.
Локаль терминала
Русский и португальский интерфейсы требуют локали UTF-8. Если её нет, установщик сам переключается на английский и сообщает об этом.
Причина не только в буквах: в локали без UTF-8 bash считает длину строки в байтах, и колонки экрана подтверждения разъезжаются. Английский состоит из ASCII и читается в любой кодировке.
На CentOS 7 локали C.UTF-8 нет вовсе — это не ошибка настройки, а особенность системы.
Задайте LANG=en_US.UTF-8 или работайте на английском.
|