【问题标题】:Terraform TFVAR files to manage AWS Environments用于管理 AWS 环境的 Terraform TFVAR 文件
【发布时间】: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


【解决方案1】:

我认为您确实需要每次都创建一个特定于环境的文件。它们需要在某处声明。无论如何,它们确实不能在没有基本声明的情况下自动生成..

我将删除 Environment 文件夹并为每个环境使用命名为 tfvars 的文件。

例子:

terraform apply -var-file="dev.tfvars"

只需添加一个新的tfvars 文件即可释放每个支持的环境。

【讨论】:

    猜你喜欢
    • 2021-09-05
    • 2018-07-09
    • 1970-01-01
    • 2012-11-25
    • 2021-09-15
    • 2021-08-03
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    相关资源
    最近更新 更多