Ответ
Логи Terraform — это детализированный вывод, который записывает внутренние операции при выполнении команд plan, apply, destroy и других. Они незаменимы для отладки проблем с провайдерами, состоянием (state) или неожиданного поведения инфраструктуры.
Ключевые уровни логирования (от наиболее к наименее детальному):
TRACE: Максимальная детализация, включая HTTP-запросы/ответы к API облачных провайдеров.DEBUG: Отладочная информация о внутренней логике Terraform и плагинов.INFO: Стандартные информационные сообщения (уровень по умолчанию).WARN: Предупреждения о потенциальных проблемах.ERROR: Сообщения об ошибках, препятствующих выполнению.
Как включить логирование:
Уровень задается через переменную окружения TF_LOG, а путь к файлу — через TF_LOG_PATH.
export TF_LOG=DEBUG
export TF_LOG_PATH=./terraform.log
terraform apply
Пример вывода лога:
2023-10-01T12:00:00.000Z [DEBUG] plugin: starting plugin: path=/.../terraform-provider-aws args=[...]
2023-10-01T12:00:01.000Z [INFO] provider.aws: Creating EC2 instance: instance_id="i-123456"
2023-10-01T12:00:02.000Z [WARN] provider.aws: Operation may take longer than expected.
Практическое использование:
- Отладка провайдеров: Логи
TRACE/DEBUGпоказывают сырые запросы к облачному API, что помогает понять причину ошибки аутентификации или лимитов. - Анализ плана: Можно увидеть, почему ресурс помечен для замены (например, из-за изменения неизменяемого атрибута).
- Продакшен: На production-окружениях следует использовать
WARNилиERROR, чтобы избежать переполнения диска и утечки чувствительной информации изTRACE-логов.