【发布时间】:2020-12-03 19:32:46
【问题描述】:
我有一个项目使用 terraform 在 AWS 中预置基础设施。我们有不同的环境 dev、stg、prod,我们部署到每个环境的方式是通过特定于环境的 .tfvars 。这是我们的结构
infra-project
|_____Module1
| Main.tf
Variables.tf
output.tf
Environments
|
| _____ dev
|_____ terraform.tfvars
|
| _____ stg
|_____ terraform.tfvars
|
| _____ prod
|_____ terraform.tfvars
dev 中terraform.tfvars 文件的示例内容
region = "us-west-2"
ami_id = "ami-0234er2455665"
subnet_id = "subnet-345rf789d"
instanceType = "t2.micro"
pvtIP= "10.12.0.0/16"
环境将不断增长,不希望每次都创建特定于环境的terraform.tfvars。有没有办法自动为每个环境生成 tfvar,以便可以将其部署到 n 个环境,而无需每次都更改项目结构?
【问题讨论】:
-
嗯,每个环境都不一样。这就是你将它们分开的原因。您可以使用预定义的模板在 CI/CD 工作流程中的其他地方或其他地方自动生成 tfvar,但您必须传递一些数据来解析该模板。您可能会发现一些常见字段并使其变得多余,但无法完全自动化。
标签: amazon-web-services terraform terraform-provider-aws