【发布时间】:2018-01-26 14:22:46
【问题描述】:
我正在编写 terraform 脚本以在 AWS 上创建 ASG。我尝试使用 terraform module 创建它,以获得更可重用的代码。问题是当我想在模块 tf 文件上使用来自 common-variable.tfvars 的变量时,它一直说它是未定义的,需要声明。这样,模块的可重用性就会降低。
这是一个例子
root
|
|___project 1
| |_____ main.tf
| |_____ common-variable.tfvars
|
|___ modules
|
|_____ a-module
|______ main.tf
所以在项目1 common-variable.tfvars里面,基本上是这样的
variable "a" {
description = "a variable"
default = "a"
}
variable "b" {
description = "a variable"
default = "b"
}
a-module/main.tf里面是这样的
variable "name" {}
resource "aws_autoscaling_group" "asg-1" {
name = "${var.a}"
...
}
当我做 terraform init 时,它说
resource 'aws_autoscaling_group.asg-1' config: unknown variable
referenced: 'a'. define it with 'variable' blocks
知道如何在模块 main .tf 中使用这个公共变量吗?
更新
我设法通过在每个模块中重新声明变量来传递terraform init。但是,当我运行terraform plan时,会出现这种错误invalid value "common-variable.tfvars" for flag -var-file: multiple map declarations not supported for variables
【问题讨论】:
标签: terraform