我尝试使用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已成功初始化!"
我试图执行以下所有操作,还有更多:
$ 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 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}" ...
无任何问题。
我环顾四周,我无法看到其他任何远程同样问题的人:一切都围绕着未正确设置的变量等。鉴于完全缺乏有用的错误消息,我不确定如何诊断此问题。我在这里做错了什么?
答案 0 :(得分:1)
Terraform输出并不告诉您terraform.tfvars
可能包含不正确的语法,而是显示用法说明。 .tfvars
文件的预期语法是正确转义name="value"
对的列表,其中需要围绕值的双引号。