google-cloud-platform - 如何将 terraform 文件(main.tf)拆分为多个文件(无模块)?

标签 google-cloud-platform terraform

我通过 Terraform 部署了 GCP 基础设施:存储桶、服务帐户、计算引擎、VPC、云 SQL、BigTable、BigQuery、Composer 等。

Terraform v0.11.10 提供商“google”(2.15.0)

最近,客户要求我将我们唯一的一个 terraform 文件(例如 main.tf)拆分为多个文件。例如:一个用于存储桶的文件,另一个用于服务帐户的文件,另一个用于数据库服务的文件,等等。

我的 GCP 存储桶中只有一个 terraform 状态文件。

我怎样才能做到影响最小?地形状态怎么样? (还会有多个状态文件吗?或者即使我们将代码拆分出来,是否也只保留一个 TF 文件?)

注意:这与 Terraform 模块无关,它只是将单个 terraform 文件 (.tf) 分成多个文件 (.tf)

提前致谢!

最佳答案

Terraform 不会为您使用的文件名以及您拥有的文件数量赋予任何特殊含义。相反,Terraform 会读取所有 .tf 文件并一起考虑它们的内容。

因此,您可以自由地将 block 从 main.tf 文件移动到同一目录中任意多个单独的 .tf 文件中,Terraform 会考虑只要您在执行此操作时不更改这些 block 的内容,配置就完全相同。

(Override Files 有一个特殊情况,这使得上述情况并不完全正确。只要您避免将任何文件命名为 override.tf 或使用 _override.tf 后缀表示特殊情况不适用,但我提及它只是为了完整性。)

关于google-cloud-platform - 如何将 terraform 文件(main.tf)拆分为多个文件(无模块)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58001764/

相关文章:

virtual-machine - 将文件从一个 Google Compute Engine VM 移动到同一区域中的另一个?

Kubernetes top vs Linux top

python - 无法在 Google 计算引擎虚拟机中安装 fbprophet

google-cloud-platform - GCP 云任务 : shorten period for creating a previously created named task

azure - Azure 存储帐户中的版本控制 Terraform 状态

google-cloud-platform - 带有外部服务器的 Google 云负载平衡器

Azure DevOps 使用变量作为部署阶段之间的条件

azure - 如何在 terraform 上使用 azurerm 提供程序创建 appRoles

azure - Azure 数据工厂中的客户管理 key

azure - 在 Terraform 中部署 AKS 时 "service_principal"的含义