$ command-helper

Terraform

Повседневные plan/apply, workspaces, работа со state, импорт и точечные запуски.

Потребуется вход через Google

Повседневная работа

Инициализировать провайдеры и backend
terraform init
Отформатировать и проверить
terraform fmt -recursive && terraform validate
Показать планируемые изменения
terraform plan
Сохранить план и применить именно его
terraform plan -out=tfplan && terraform apply tfplan
План с файлом переменных
terraform plan -var-file=<env>.tfvars
Показать outputs
terraform output
Удалить всё (с подтверждением)
terraform destroy

Workspaces

Список workspaces
terraform workspace list
Создать workspace и переключиться
terraform workspace new <workspace>
Переключить workspace
terraform workspace select <workspace>

State

Ресурсы в state
terraform state list
Показать ресурс из state
terraform state show '<resource>'
Переименовать или перенести ресурс в stateпродвинутая
terraform state mv '<resource>' '<new_resource>'

В Terraform 1.1+ лучше использовать блок moved {} в коде.

Забыть ресурс, не удаляя егопродвинутая
terraform state rm '<resource>'
Импортировать существующий ресурспродвинутая
terraform import '<resource>' <cloud_id>
Снять зависшую блокировку stateпродвинутая
terraform force-unlock <lock_id>

Точечные и продвинутые запуски

План для одного ресурсапродвинутая
terraform plan -target='<resource>'
Пересоздать ресурспродвинутая
terraform apply -replace='<resource>'
Синхронизировать state с реальностью без изменений инфрыпродвинутая
terraform apply -refresh-only
Обновить провайдеры в пределах ограниченийпродвинутая
terraform init -upgrade
Подробные логипродвинутая
TF_LOG=DEBUG terraform plan