terraform - 如何使用 terraform 在多个区域进行设置?
问题描述
我有一个没有模块的 terraform 配置文件,它托管在生产环境中。
目前我正在尝试使用提供者别名和模块将它部署在另一个区域。但是当我计划相同时,它说我需要销毁我以前的配置并通过模块重新创建它
当我模块化文件时,terraform 会将文件视为新资源吗?我有大约 35 个资源,它说要销毁 35 个,要创建 35 个。在模块化过程中,我删除了根目录下的 .terraform 文件夹并将其初始化主模块
这是预期的行为吗?
解决方案
我建议您研究 terragrunt 以使您的代码更加枯燥。与 Terragrunt 集成后,您可以开始使用这样的层次结构:
--root
terragrunt.hcl
|
--dev_account
account.hcl
|
--us-east-2
region.hcl
|
--services
--us-east-1
--us-west-2
--uat_account
|
--us-east-2
|
--services
--us-east-1
--us-west-2
--prod_account
|
--us-east-2
|
--services
--us-east-1
--us-west-2
Terragrunt 将允许您拥有一个模块并具有与此类似的层次结构,您将能够解析 account.hcl 和 region.hcls 以部署到不同的区域,而无需重新输入此信息。
如果您选择应用所有子 terraform 配置,Terragrunt 允许您运行 apply-all,但我不建议将其用于生产。
推荐阅读
- python - 检查字符串是否为 discord.py 中的数字
- java - 如何根据父容器的大小调整 JPanel 的大小
- python-3.x - joblib.load 报错 ModuleNotFoundError: No module named 'sklearn.preprocessing.label'
- qt - 如何获取 MainWindow 而不是 centralWidget?
- shopify - 如何在任何页面中创建和调用自定义块
- html - XAMPP 不加载 CSS 文件
- firebase - Flutter Firestore Stem Data 想要在 StaggeredGridView 中显示
- python - 关于 min() 函数中“key”的问题
- python - 将 pandas 列中的值分解为 bin
- amazon-elb - 将实例注册到已附加实例的 ELB 或目标组