无法从CLI设置terraform变量

时间:2017-01-06 21:10:50

标签: terraform

我的terraform项目布局类似于:

[project root dir]
main.tf
  - my_module [directory]:
      variables.tf
      my_instance.tf

variables.tf我有这样的事情:

variable "foo-ami" {
  default = "ami-12345"
  description = "Super awesome AMI"
}

my_instance.tf我这样引用它:

resource "aws_instance" "my_instance" {
  ami = "${var.foo-ami}"
  ...
}

如果我想从命令行覆盖此变量,文档here似乎建议我应该能够从顶级(main.tf)位置运行以下命令:

terraform plan -var 'foo-ami=ami-987654'

但是,变量开关似乎没有被拾取。旧值仍然有效。此外,如果我删除默认设置,我会从terraform中收到错误,说明它没有设置,所以很明显{@ 1}}开关没有被选中。

思考?

TIA

1 个答案:

答案 0 :(得分:3)

rootmy_module的变量不同。如果要将变量传递给my_module,则需要指定它。

main.tf中,您应该按如下方式设置变量:

variable "foo-ami" {}

module "my_module" {
  source = "./my_module"
  foo-ami = "${var.foo-ami}"
  ...
}

有关模块功能的详细信息,请参阅以下文档: https://www.terraform.io/docs/modules/usage.html