【发布时间】:2018-03-17 22:04:35
【问题描述】:
Terraform v0.10.7
我正在为我们的 DevOps 团队整合 terraform 模块。我们正在使用的每个组件都有单独的模块,然后将使用这些模块针对不同的环境和要求创建整个堆栈。
目录层次如下:
Terraform
- modules
- module-1 (main.tf, vars.tf, outputs.tf, backend.tf)
- module-2 (main.tf, vars.tf, outputs.tf, backend.tf)
- module-3 (main.tf, vars.tf, outputs.tf, backend.tf)
...
- environments
- qa (main.tf, vars.tf, outputs.tf, bakend.tf)
- stage (main.tf, vars.tf, outputs.tf, bakend.tf)
- prod (main.tf, vars.tf, outputs.tf, bakend.tf)
在 backend.tf 中,我将后端指定为 S3,并将完整的层次结构指定为 /resources/mod-1/terraform.tfstate。同样的事情也适用于环境中的 backend.tf。
当我为任何环境提供 terraform get 和 terraform apply 时,它将获取所有指定的模块并将更改应用到 AWS 基础设施,并将该环境的 terraform.tfstate 存储在 S3 中的指定位置。
所以问题是,环境中使用的所有模块的 terraform.tfstate 是否也会生成并推送到 S3(单个应用到 env)?
我还没有将terraform apply 运行到任何模块。
因为我计划使用来自 S3 的这些模块的 terraform.tfstate 中的一些数据,同时希望避免对这些模块提供多个应用程序并将单个 terraform apply 提供给环境.如何实现?
【问题讨论】:
标签: amazon-web-services amazon-s3 terraform