首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >terraform覆盖多个模块及其特定于环境的变量

terraform覆盖多个模块及其特定于环境的变量
EN

Stack Overflow用户
提问于 2022-05-05 20:55:07
回答 2查看 265关注 0票数 1

我有一个地形回购,其中包含多个模块如下。

代码语言:javascript
复制
root
   |-modules
   |   |-module1
   |   |    |- main.tf
   |   |    |- variables
   |   |          |- dev.tfvars
   |   |          |- test.tfvars
   |   |          |- prod.tfvars
   |   |-module2
   |   |    |- main.tf
   |   |    |- variables
   |   |          |- dev.tfvars
   |   |          |- test.tfvars
   |   |          |- prod.tfvars
   |-main.tf

根的main.tf包括如下模块

代码语言:javascript
复制
 module "module1"{
    source = ./modules/module1
}

module "module1"{
    source = ./modules/module1
}

现在,对于这个结构,我需要添加特定于环境的tfvars文件,以提供该模块所需的变量。如果是单个模块,我可以重写变量。但在这种情况下却找不出越权。任何建议都是有用的。

EN

回答 2

Stack Overflow用户

发布于 2022-05-06 00:39:58

您必须将所有覆盖的变量显式传递给您的模块,从根开始。

票数 0
EN

Stack Overflow用户

发布于 2022-05-10 21:47:43

我将重组该项目,以便将环境细节从模块中删除。模块应该与环境无关。

代码语言:javascript
复制
root
   |-modules
   |   |-module1
   |   |    |- main.tf
   |   |    |- variables
   |   |-module2
   |   |    |- main.tf
   |   |    |- variables
   |-main.tf
   |- dev.tfvars
   |- test.tfvars
   |- prod.tfvars

将所需的var传递给模块调用。

代码语言:javascript
复制
 module "module1"{
    source = ./modules/module1
    myvar1 = var.myvar1
    myvar2 = var.myvar2
}

module "module2"{
    source = ./modules/module2
    myvar1 = var.myvar1
    myvar2 = var.myvar2
}

然后为部署到的环境选择tfvars文件。

代码语言:javascript
复制
terraform plan -var-file=dev.tfvars
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72133544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档