linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
Intro
Lessons
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • База знаний
  • Шпаргалка
  • Capstone
  • Собеседование
Cheatsheet

$ man terraform | less

Шпаргалка.
Команды, которые нужны каждый день.

Это не справочник по полям ресурсов, а карта команд CLI. Каждая карточка: команда, что делает, линк в KB. Сгруппировано по тому, что обычно делают подряд.

Можно распечатать. Ctrl/Cmd + P даст одностраничный layout без навигации.

init · plan · apply

init · plan · apply

Главный цикл. Без этих трёх жизни в Terraform нет.

  • terraform init

    Скачать провайдеры и модули, создать .terraform.lock.hcl.

    kb · tf-init
  • terraform init -upgrade

    Перечитать модули и провайдеры заново; нужно при смене version/source.

    kb · tf-init-modules
  • terraform init -backend-config=...

    Подсунуть параметры backend без редактирования HCL (CI, multi-env).

    kb · tf-remote-backend-s3
  • terraform plan

    Diff между HCL и state. Ничего не меняет. Запускай сколько хочешь.

    kb · tf-plan
  • terraform plan -out=plan.tfplan

    Сохранить план как артефакт; apply из файла гарантирует тот же расклад.

    kb · tf-plan-apply-ci
  • terraform plan -detailed-exitcode

    Exit 0 значит нет изменений, 2 значит есть, 1 значит ошибка. Для drift detection и CI.

    kb · tf-drift-detection
  • terraform apply -auto-approve

    Применить план без подтверждения. В CI обязательно из plan.tfplan.

    kb · tf-apply
  • terraform apply plan.tfplan

    Применить сохранённый план без ре-планирования, точная копия.

    kb · tf-plan-apply-ci
  • terraform destroy

    Снести всё что в state. В проде почти никогда; в обучении постоянно.

    kb · tf-destroy
state · refactor

state · refactor

state это память Terraform. Двигать осторожно, делать backup.

  • terraform show -json | jq

    Распечатать state в JSON. Базовый инструмент для verify и отладки.

    kb · tf-state
  • terraform state list

    Адреса всех ресурсов в state. Префикс module.X означает ресурс модуля.

    kb · tf-state
  • terraform state show ADDR

    Полное содержимое одного ресурса в state, с sensitive-полями.

    kb · tf-state-manipulation
  • terraform state mv A B

    Переименовать в state без destroy. Альтернатива: moved-блок.

    kb · tf-moved-block
  • terraform state rm ADDR

    Убрать из state, не трогая облако. Альтернатива: removed-блок.

    kb · tf-removed-block
  • terraform import ADDR ID

    Затащить в state существующий ресурс из облака.

    kb · tf-state-import
  • import { to = ADDR id = "..." }

    Декларативный import (TF 1.5+). Plan покажет до apply, в отличие от CLI.

    kb · tf-state-import
  • moved { from = A to = B }

    Переименование без destroy при рефакторинге кода.

    kb · tf-moved-block
  • removed { from = A lifecycle { destroy = false } }

    TF 1.7+: убрать ресурс из state, оставить в облаке.

    kb · tf-removed-block
workflow · refactor

workflow · refactor

Гигиена HCL. Хорошие команды без последствий, плохие с последствиями.

  • terraform fmt -recursive

    Каноничное форматирование. -check для CI.

    kb · tf-fmt
  • terraform validate

    Проверка синтаксиса и типов без обращения к облаку.

    kb · tf-validate
  • terraform console

    REPL для выражений, type() и быстрого чтения state.

    kb · tf-console
  • terraform graph | dot -Tsvg > graph.svg

    Граф зависимостей. Цикл? -draw-cycles.

    kb · tf-graph
  • terraform apply -replace=ADDR

    Принудительно пересоздать ресурс. Каскадно отзовётся на зависимости.

    kb · tf-replace-target
  • terraform apply -target=ADDR

    Аварийный «выкатить только это». Не штатный workflow.

    kb · tf-replace-target
  • terraform output -raw NAME

    Прочитать output без кавычек. Для скриптов и pipe.

    kb · tf-output
  • terraform workspace select dev

    Переключиться на named workspace. Не для multi-env в проде.

    kb · tf-workspace
debugging

debugging

Когда план непонятен или apply падает: порядок действий.

  • TF_LOG=DEBUG terraform plan

    Уровни: TRACE, DEBUG, INFO, WARN, ERROR. TRACE показывает HTTP-вызовы провайдера.

    kb · tf-log-debug
  • TF_LOG_PATH=tf.log TF_LOG=DEBUG terraform apply

    Логи в файл, не в stderr. Для разбора инцидентов и тикетов.

    kb · tf-log-debug
  • terraform plan -no-color | grep -E "^( [+~-]|Plan:)"

    Фильтровать diff: только строки изменений и сводка.

    kb · tf-plan-diff
  • terraform show plan.tfplan

    Прочитать бинарный план человеком. -json подходит для машин.

    kb · tf-plan-diff
  • terraform refresh

    Обновить state из облака, не меняя HCL. Полезно при drift.

    kb · tf-drift-detection
  • terraform force-unlock LOCK_ID

    Снять зависший lock state. Только если уверен что никто не работает.

    kb · tf-common-errors
  • terraform graph -draw-cycles | dot -Tsvg

    Подсветить циклы в графе зависимостей. Cycle Error берётся отсюда.

    kb · tf-common-errors
testing

testing

Нативные тесты, mock-провайдеры, terratest. Что и когда.

  • terraform test

    Прогнать .tftest.hcl из корня конфигурации и из tests/ (дефолтный test-directory). TF 1.6+.

    kb · tf-test-framework
  • terraform test -filter=tests/plan.tftest.hcl

    Только один файл. Удобно при отладке assert.

    kb · tf-test-framework
  • mock_provider "aws" { ... }

    Без облака. Любые ресурсы становятся фейком, assert работают.

    kb · tf-test-mocks
  • go test -timeout 30m ./...

    Terratest. Поднимает реальную инфру, гонит проверки, сносит.

    kb · terratest-basics
  • terraform-compliance -p plan.json -f features/

    BDD-policy через Gherkin. Альтернатива OPA для нетехнических ревьюверов.

    kb · terraform-compliance
security · linters

security · linters

fmt → validate → tflint → checkov → trivy → OPA. По возрастанию строгости.

  • tflint --recursive

    Стилевые и логические правила по HCL. AWS-ruleset идёт отдельно.

    kb · tf-fmt-validate-ci
  • checkov -d .

    Статический security-сканер HCL и plan.json. Suppression задаётся в комментах.

    kb · tf-checkov
  • trivy config .

    Замена tfsec; на HCL и plan.json. CIS-проверки в одном инструменте.

    kb · tf-trivy-tfsec
  • conftest test --policy policies/ plan.json

    OPA/Rego: deny-правила по plan.json. Для policy-gate в CI.

    kb · tf-policy-as-code
  • pre-commit install

    Хуки fmt/validate/tflint/checkov на git commit. Никакого «забыл прогнать».

    kb · tf-fmt-validate-ci
  • terraform output -json | jq '. | walk(...)'

    Sensitive в output редактируется, но в state виден. Не клади секреты.

    kb · tf-sensitive
advanced

advanced

Terragrunt, CDKTF, Infracost, OpenTofu. Когда основ мало.

  • terragrunt run-all plan

    Plan по всем стек-модулям. dependency-блоки разруливают порядок.

    kb · tf-terragrunt
  • cdktf init --template typescript

    Стартовый CDKTF-проект. Затем cdktf synth → plain HCL.

    kb · tf-cdktf
  • infracost breakdown --path .

    Оценка стоимости плана. В CI считает diff между PR и main.

    kb · tf-cost-infracost
  • tofu init && tofu apply

    OpenTofu. CLI идентичен, state совместим. Provider тот же.

    kb · tf-opentofu-parity
  • rover -tfPath terraform -workingDir .

    Веб-визуализатор графа и плана. Удобно для презентаций ревью.

    kb · tf-rover-visualization
See also

Дальше

Шпаргалка это якорь, не учебник. Чтобы команды легли в голову, нужно прогнать их руками. Полный путь: /intro. Сразу в практику: /lessons. Сквозной проект: /capstone.

Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки