Terraform var文件选项不起作用

Terraform var文件选项不起作用,terraform,Terraform,我正试图让Terraform构建工作起来,它利用一个文件来处理我不想在源代码树中使用的变量,但这些变量是必需的输入 我的目录结构非常简单: /nford # Unix system user; echo $HOME -> /home/nford /deployment /prod /module_01 variables.tf main.tf output.tf /secrets terraform.tfvars

我正试图让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/
目录

当我执行
terraforminit
时,它没有抱怨,说“terraform已成功初始化!”

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

$ 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
的使用情况。它没有给我其他的错误。它看起来根本没有运行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文件
标志,它报告:

Error: Required variable not set: pub_key
... etc (there are a number of these)
terraform平面图-var“pub_key=${PUBLIC_key_LOC}”..
工作正常,没有任何问题


我环顾四周,我看不到任何其他人有同样的问题:一切都围绕着变量设置不正确之类的问题。我不知道如何诊断这个问题,因为完全没有有用的错误信息。这里我做错了什么?

Terraform输出没有告诉您
Terraform.tfvars
可能包含不正确的语法,而是显示使用说明。
.tfvars
文件的预期语法是一个正确转义的
name=“value”
对列表,其中需要围绕值的双引号。

您使用的是什么terraform版本?我尝试了您的场景,它似乎在terraform v0.11.4中按预期工作。如果您的tfvars没有遵循正确的语法,那么在您尝试运行terraform时,您将获得usage命令作为输出。值得检查的是,您的tfvars文件是否没有任何未定型字符
$terraform--version
返回
terraform v0.11.7
@davidrpzybilla这是个好主意。。。但是我检查了一下,除了一些尾随空格和
$HOME
之外,什么都没有。我硬编码了路径并删除了额外的字符,同样的结果出现了。你知道什么可能需要转义吗,就字符而言?它必须是foo=“bar”