Терраформирование удаленного состояния с использованием неправильного файла

#terraform #terraform-provider-aws #terragrunt

#терраформирование #terraform-provider-aws #terragrunt

Вопрос:

Мы используем Terraform с серверной частью S3 через Terragrunt. Недавно кто-то пытался использовать рабочее пространство Terraform и впоследствии удалил рабочее пространство, не наше удаленное состояние не может найти ни одного из выходных данных, которые находятся в правильном файле состояния.

Просмотрев журнал отладки, я вижу, что он, похоже, указывает на правильный файл, но он не использует ни одну из уже развернутых инфраструктур или выходных данных

Комментарии:

1. У вас не включено управление версиями в корзине S3, чтобы вы могли вернуть свое состояние к тому, что было?

2. Кроме того, убедитесь, что вы создали резервную копию и удалили все файлы terraform локально, чтобы было выбрано новое, загруженное состояние.

Ответ №1:

Terraform workspace и terragrunt используют другой путь к внутреннему ключу. И если вы работаете с terragrunt , в корзине s3 по умолчанию включен контроль версий.

Например, используя terraform workspace , реальный *.tfstate файл будет создан для

 s3://<nominated_backend_bucket>/env:/<workspace_name>/<tfstate_path>
  

Но terragrunt создаст путь к tfstate как

 s3://<nominated_backup_bucket>/<source_code_directory>/<tfstate_path>
  

Таким образом, в большинстве случаев у них не будет возможности конфликтовать друг с другом.

Я рекомендую очистить вашу среду и запустить terragrunt plan/apply снова. Существуют некоторые другие проблемы, которые вы не описали в своем первоначальном вопросе, и вам нужно выяснить это самостоятельно.

Комментарии:

1. Спасибо, я попробую ваши предложения