Terraform var-file 选项不起作用

Terraform var-file option does not work

我正在尝试让 Terraform 构建工作,使用一个文件来存放我在源代码树中不需要的变量,但这些变量是必需的输入。

我的目录结构很简单:

/nford   # Unix system user; echo $HOME -> /home/nford
  /deployment
    /prod
      /module_01
      variables.tf
      main.tf
      output.tf
  /secrets
    terraform.tfvars

其余全部来自 /home/nford/deployment/prod/ 目录。

当我执行terraform init时它没有任何抱怨,说"Terraform has been successfully initialized!"

我已尝试执行以下所有操作,以及更多操作:

$ terraform validate -var-file=~/secrets/terraform.tfvars
$ terraform validate -var-file=$HOME/secrets/terraform.tfvars
$ terraform validate -var-file=/home/nford/secrets/terraform.tfvars
$ terraform plan -var-file=~/secrets/terraform.tfvars
$ terraform plan -var-file=$HOME/secrets/terraform.tfvars
$ terraform plan -var-file=/home/nford/secrets/terraform.tfvars

其中每一个都会产生相同的结果:它显示 terraform <validate|plan> 的用法。它没有给我其他错误。 运行 terraform 似乎根本没有。我尝试将文件移动到同一目录并执行:

$ terraform validate -var-file=terraform.tfvars
$ terraform validate -var-file=./terraform.tfvars
$ terraform plan -var-file=terraform.tfvars
$ terraform plan -var-file=./terraform.tfvars

这些产生相同的结果:它显示用法。我试过完全删除 -var-file 标志,它报告:

Error: Required variable not set: pub_key
... etc (there are a number of these)

terraform plan -var "pub_key=${PUBLIC_KEY_LOC}" ... 没有任何问题。

我环顾四周,看不到其他人有同样的问题:一切都围绕着变量设置不正确或类似问题。鉴于完全没有有用的错误消息,我不确定如何诊断此问题。我在这里做错了什么?

Terraform 输出不会告诉您 terraform.tfvars 可能包含不正确的语法,而是显示用法说明。 .tfvars 文件的预期语法是正确转义的 name="value" 对的列表,其中需要在值周围加上双引号。