Логи и коды возврата
Где лежат
Логи пишутся в каталог logs рядом со скриптами.
Если писать туда нельзя, используется ~/.era_installer/logs.
Каталог можно задать переменной окружения ERA_LOG_DIR.
Каждый прогон оставляет три файла:
| Файл | Содержимое |
|---|---|
|
Ход выполнения: предпроверки, план, каждая команда и её результат. |
|
Собранные значения — файл ответов. |
|
Готовая неинтерактивная команда повтора. Если у мастера перечислены дополнительные серверы, туда же дописаны команды для каждого из них. |
Рядом лежит символическая ссылка last.log на последний прогон.
Права на все файлы — 0600: в них пароли.
При установке по ssh лог удалённой стороны забирается к вам в logs/remote/<хост>/.
Так после сбоя оба лога — ваш и серверный — лежат рядом.
Как читать
Строки помечены уровнем, и метки не переводятся — лог остаётся пригодным для grep независимо от языка интерфейса.
| Метка | Что означает |
|---|---|
|
Обычный ход дела. |
|
Что-то не так, но установка продолжается. |
|
Ошибка. Обычно последняя строка перед выходом. |
|
Команда, которую установщик собирается выполнить. |
|
Команда не выполнена, следом указана причина. |
|
Подробности. Показываются в консоли только с |
EXEC — это объявление команды, а не доказательство её запуска.
В режиме --dry-run команды печатаются точно так же, и сразу за ними идёт строка dry-run: not executed.
Сделано это намеренно: пробный прогон должен показывать ровно то, что сделает настоящий.
|
Найти, что действительно выполнялось:
grep -A1 '\[EXEC' logs/last.log | grep -v 'not executed'
Найти ошибки:
grep -E '\[(ERROR|WARN)' logs/last.log
Шапка лога содержит версию установщика, ОС, версию bash и командную строку запуска. Пароли в ней уже замаскированы.
Пароли в логах
Значения параметров, помеченных в реестре как секретные, заменяются на •••••• — и в сводке, и в командной строке в шапке, и в напечатанных командах.
Ключ --log-secrets отключает маскировку.
Он нужен при разборе сбоя аутентификации и не должен попадать в обычные сценарии.
Коды возврата
Коды перечислены в era_installer/reference-exit-codes.adoc#era-installer-exit-codes.
Различать их стоит по одному признаку: изменён ли сервер. Коды 2, 3 и 4 означают, что до фазы применения дело не дошло и сервер не тронут. Код 5 означает, что применение началось и оборвалось — сервер изменён частично, и по логу видно, на каком шаге.