# Terraform — Core (one-screen) ## 1) Что такое Terraform Terraform (HashiCorp) — инструмент централизованного управления инфраструктурой по IaC: описываем **желаемое состояние**, Terraform через **provider** вызывает API вендора. ## 2) Основные файлы/директории - `main.tf` — декларативное описание инфраструктуры. - `terraform.d/` — место, где может храниться провайдер после загрузки. - `.terraform/` — рабочая директория Terraform (в т.ч. файлы провайдеров/кэш). - `terraform.lock.hcl` — lockfile версий провайдеров (фиксирует зависимости). - `terraform.tfstate` — **state**: зарегистрированное состояние инфраструктуры (очень важный файл). ## 3) Базовые команды - `terraform init` — инициализация директории (скачать провайдеры и т.п.). - `terraform plan` — показать, что изменится (dry-run). - `terraform apply` — применить изменения. - `terraform refresh` — обновить данные о состоянии (в современных версиях многое переехало в plan/apply). ## 4) Практическая заметка про state `tfstate` связывает “код” и реальные ресурсы. Потеря/порча state = боль (дрейф, дубли, невозможность безопасно удалить). --- **Source:** [[01 Library/02 DevOps/Terraform|Terraform]]