# 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]]
