Terraform
Повседневные plan/apply, workspaces, работа со state, импорт и точечные запуски.
Повседневная работа
Инициализировать провайдеры и 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 destroyWorkspaces
Список 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