首页 > 解决方案 > 用于管理 AWS 环境的 Terraform TFVAR 文件

问题描述

我有一个项目使用 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

terraform.tfvarsdev中文件的示例内容

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 个环境,而无需每次都更改项目结构?

标签: amazon-web-servicesterraformterraform-provider-aws

解决方案


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

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

例子:

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

只需在tfvars每个受支持的环境中添加一个新文件即可。


推荐阅读