terraform

43 commands

43 shown

Plan с файлом переменных Показать изменения; сохранить артефакт плана для гейтинга в CI terraform plan -var-file=prod.tfvars -out=plan.tfplan #terraform Apply сохранённого плана Применить именно ранее сгенерированный план — без интерактивных запросов terraform apply plan.tfplan #terraform Импорт существующего ресурса Взять уже существующий ресурс под управление Terraform terraform import module.path.resource_type.name <remote-id> #terraform Просмотр состояния ресурса Атрибуты ресурса в Terraform state terraform state show module.path.resource_type.name #terraform Перемещение ресурса в state Переименовать/реорганизовать ресурс без удаления и пересоздания terraform state mv old.address new.address #terraform Список workspace Все workspace; текущий отмечен * terraform workspace list #terraform Создать и переключить workspace Создать новый workspace и переключиться на него terraform workspace new staging && terraform workspace select staging #terraform Валидировать конфигурацию Проверить конфигурацию Terraform на синтаксические ошибки terraform validate #terraform Форматировать код Автоформатировать все .tf файлы рекурсивно terraform fmt -recursive #terraform Output значения Вывести все output значения в JSON; удобно в пайплайнах terraform output -json #terraform Уничтожить конкретный ресурс Уничтожить один ресурс не трогая остальное terraform destroy -target=module.vpc.aws_vpc.main #terraform Taint ресурса (принудительная замена) Пометить ресурс для пересоздания при следующем apply terraform taint module.eks.aws_instance.node #terraform Убрать ресурс из state Убрать ресурс из state не уничтожая его в облаке terraform state rm module.path.resource_type.name #terraform Обновить state Синхронизировать state с реальной инфраструктурой terraform refresh -var-file=prod.tfvars #terraform Граф зависимостей Визуализировать граф зависимостей ресурсов (требует Graphviz) terraform graph | dot -Tsvg > graph.svg #terraform#debug Список ресурсов в state Отфильтровать ресурсы state по паттерну terraform state list | grep <pattern> #terraform Форматировать все файлы Рекурсивно форматировать все .tf файлы в поддиректориях terraform fmt -recursive #terraform Валидация конфигурации Проверить синтаксис конфигурации без обращения к remote state terraform validate #terraform#debug Plan с файлом переменных Сгенерировать план с prod переменными, сохранить в файл terraform plan -var-file=prod.tfvars -out=prod.tfplan #terraform Применить сохранённый план Применить ранее сохранённый план без повторного подтверждения terraform apply prod.tfplan #terraform Ресурс в state Вывести все атрибуты конкретного ресурса из state terraform state show 'aws_instance.web[0]' #terraform#debug Переместить ресурс в state Переименовать или переместить ресурс без уничтожения terraform state mv 'aws_instance.web' 'module.app.aws_instance.web' #terraform Импортировать существующий ресурс Взять существующий ресурс под управление Terraform terraform import 'aws_s3_bucket.mybucket' my-existing-bucket #terraform Пометить ресурс для пересоздания Пометить ресурс для уничтожения и пересоздания при следующем apply terraform taint 'aws_instance.web[0]' #terraform Удалить ресурс из state Удалить ресурс из state без его уничтожения в облаке terraform state rm 'aws_instance.legacy' #terraform Вывести outputs Вывести все outputs в компактном JSON terraform output -json | jq 'to_entries[] | {(.key): .value.value}' #terraform Уничтожить конкретный ресурс Уничтожить один ресурс без полного плана terraform destroy -target='aws_instance.web' -auto-approve #terraform Разблокировать state Освободить заблокированный state после неудачного apply terraform force-unlock <lock-id> #terraform#debug Создать и переключить workspace Создать и активировать Terraform workspace terraform workspace new staging && terraform workspace select staging #terraform Граф зависимостей Отобразить граф зависимостей как SVG (требует graphviz) terraform graph | dot -Tsvg > graph.svg && open graph.svg #terraform#debug Список провайдеров с версиями Зафиксировать версии провайдеров для нескольких платформ terraform providers lock -platform=linux_amd64 -platform=darwin_arm64 #terraform Перемещение ресурса в state Переименование/рефакторинг адреса без уничтожения; в новых версиях лучше блок moved{} terraform state mv 'aws_instance.web' 'aws_instance.app' #terraform#gitops#troubleshooting Удаление осиротевшего объекта из state Забыть ресурс из state без удаления реальной инфраструктуры; note: объект остаётся живым terraform state rm 'aws_s3_bucket.legacy' #terraform#troubleshooting#cloud Просмотр state одного ресурса Вывести все атрибуты одного адреса для разбора дрейфа и отладки terraform state show 'module.vpc.aws_subnet.private[0]' #terraform#debug#troubleshooting Поиск по списку state Отфильтровать управляемые адреса перед операциями со state terraform state list | grep -i 'aws_iam' #terraform#troubleshooting#security Импорт через блок import Декларативный импорт; -generate-config-out генерирует HCL для импортируемого объекта cat > import.tf <<'EOF' import { to = aws_instance.web id = "<id>" } EOF terraform plan -generate-config-out=generated.tf #terraform#gitops#cloud Рефакторинг через блок moved Переименование адресов в коде без destroy/recreate; фиксируется в системе контроля версий cat >> moved.tf <<'EOF' moved { from = aws_instance.web to = aws_instance.app } EOF #terraform#gitops#troubleshooting Замена ресурса (современный taint) Принудительный destroy+recreate одного ресурса; заменяет устаревший terraform taint terraform apply -replace='aws_instance.web' #terraform#troubleshooting#cloud Точечный targeted plan Ограничить план одним адресом; note: -target — аварийный приём, может скрывать дрейф terraform plan -target='module.db.aws_db_instance.main' #terraform#troubleshooting#debug Refresh-only план (детект дрейфа) Синхронизировать state с реальной инфраструктурой без изменений; показывает внешний дрейф terraform plan -refresh-only #terraform#monitoring#troubleshooting Миграция backend при init Перенести state в новый backend; -reconfigure пропускает миграцию и сбрасывает настройки terraform init -migrate-state -backend-config=backend.hcl #terraform#gitops#troubleshooting Запрос outputs через jq Передать машиночитаемые outputs в jq для скриптов и связывания систем terraform output -json | jq -r '.endpoints.value[]' #terraform#ci#observability Трассировка плана через TF_LOG Записать отладку провайдера/API в файл; TRACE даёт максимально подробный уровень TF_LOG=DEBUG TF_LOG_PATH=tf.log terraform plan #terraform#debug#troubleshooting
no commands match