Чтобы сохранить состояние terraform папки начальной загрузки на серверной части S3 с подходом миграцииPython

Программы на Python
Anonymous
Чтобы сохранить состояние terraform папки начальной загрузки на серверной части S3 с подходом миграции

Сообщение Anonymous »

Я работаю над проектом по автоматизации инфраструктуры AWS с помощью Terraform. Первоначально я создал две папки (bootstrap и live).

Ниже представлена ​​структура папок Bootstrap.

введите здесь описание изображения
Мы знаем, что нам нужно создать серверный файл конфигурации для хранения состояния Terraform в корзине S3. Но конфигурация бэкэнда не поддерживает интерполяцию переменных, поэтому нам приходится жестко закодировать значения в бэкэнде. В дополнение к этому существует также проблема курицы и яйца (перед их использованием необходимо создать серверную часть S3 и DynamoDB).

Для решения этих проблем хорошим вариантом является Terragrunt.
Но мы также можем создать сценарий Python для автоматического создания файла конфигурации серверной части и запустить команду миграции для сохранения состояния Terraform в серверной части S3.
Подход следующий:

- terraform init (вручную): для инициализации всех модулей, включая S3 и DynamoDB.

- terraform validate (вручную): для проверки синтаксиса всех модулей

- terraform plan -var-file dev.tfvars (вручную)
- А затем запустите сценарий Python, чтобы применить модули и извлечь выходные данные из файла outputs.tf + сгенерировать внутренний файл + перенести состояние на S3.
Разве это не лучший подход к решению этих проблем вместо использования Terragrunt (особенно в папке начальной загрузки) для инициализации модулей, таких как iam_policy, iam_role, dynamoDb, S3 и kms?

Вернуться в «Python»