Коды возврата

Одинаковы у всех восьми команд.

Код Значение Состояние сервера

0

Успешно

Изменён, как показано в плане.

1

Общая ошибка

Зависит от места сбоя, см. лог.

2

Ошибка в ключах командной строки

Не изменён.

3

Предпроверки не пройдены

Не изменён.

4

Отменено оператором

Не изменён.

5

Ошибка в фазе применения

Изменён. В логе видно, какое действие выполнилось последним.

6

Ошибка связи с удалённым хостом

Не изменён.

Главное различие — между 3 и 5. Код 3 означает, что установщик отказался начинать: не хватило прав, не нашёлся образ, ОС не поддерживается. Код 5 означает, что он начал и не смог закончить.

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

И этим же кодом завершается запуск, в котором очередь действий дошла до конца, но форма «что изменилось на сервере» показала [FAIL]: изменение сделано не до конца — скажем, каталог NFS не смонтировался. Такие шаги намеренно не прерывают установку — форма для того и печатается, чтобы их отказ не остался незамеченным. Метка [warn] на код возврата не влияет: сервер работает, хотя и не полностью. См. era_installer/install-local.adoc#era-installer-install-local-changes.

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

В сценариях

rc=0
bash era/scripts/install.sh --non-interactive --answers-file=srv.params || rc=$?

case $rc in
  0) printf 'установлено\n' ;;
  3) printf 'предпроверки не прошли, сервер не тронут\n' ;;
  5) printf 'ВНИМАНИЕ: сервер изменён частично, нужен разбор\n' ;;
  *) printf 'сбой, код %s\n' "$rc" ;;
esac