小编del*_*ker的帖子

如何为多种环境组织 terraform 模块?

网络上的每个 Terraform 指南都提供了部分解决方案,几乎总是不是真实的图片。
我明白了,并不是每个人都有相同的基础设施需求,但是让我担心的是常见的场景:

  1. 多个环境(开发,阶段)
  2. 远程后端 (s3)
  3. 一些基本资源(bucket 或 ec2 实例)

没有在真实示例项目中的任何地方出现。
我正在寻找那个,同时,我已经研究并得出结论,除了这些需求之外,我还想要:

  1. 利用模块
  2. 不使用工作区,而是使用不同的每个环境目录方法
  3. 不使用 terragrunt 包装器

我当前的结构,不使用模块 - 只有根模块:

infra/ ------------------------------ 'terraform init', 'terraform apply' inside here*  
     main.tf ------------------------ Sets up aws provider, backend, backend bucket, dynamodb table   
     terraform.tfvars   
     variables.tf ----------------- Holds few variables such as aws_region, project_name...
Run Code Online (Sandbox Code Playgroud)

我想要的结构文件夹树(用于单个存储桶资源的简单开发和暂存模拟)是我认为的事情:

infra/  
     dev/  
        s3/  
            modules.tf ------ References s3 module from local/remote folder with dev inputs   
     stage/  
        s3/  
            modules.tf ------ References s3 module from local/remote folder with stage inputs   
Run Code Online (Sandbox Code Playgroud)

但是我以前的根模块中的文件呢?我仍然想像以前一样拥有一个远程后端 …

amazon-web-services terraform terraform-provider-aws

3
推荐指数
2
解决办法
2640
查看次数