首页 > 解决方案 > Terraform 模块 - 变量和 .tfvars

问题描述

Terraform 模块和变量有问题,我不知道自己做错了什么。

我有一个看起来像这样的文件夹结构;

Accounts
    |_____Account1
    |        Main.tf
    |        terraform.tfvars
    |_____Account2
    |_____Account3
    |_____Modules
             |________VPC
                      Main.tf
                      Variables.tf

在我的模块文件夹中,我有我的 main.tf 和 variables.tf,在帐户下我还有我的 main.tf(调用模块 vpc)和 terrform.tfvars。

如何使用我的 terraform.tfvars 将安全凭据传递给我的帐户文件夹中的 main.tf?

VPC 模块中我的 Variables.tf 中的变量如下所示;

variable "aws_access_key" {
  default = ""
 }

在我的帐户文件夹中,在 Main.tf 我试图以这种方式调用 tfvars;

variable "aws_access_key" {}

module "VPC" {
source = "/Accounts/Modules/VPC"
aws_access_key = "${var.aws_access_key}"
}

可以运行 terraform init 没有任何问题,但尝试运行 terraform plan,它只是出现红色并且无法运行。如果我手动将变量输入到帐户文件夹中的 main.tf 中,这确实有效。但是我想将任何敏感的东西剥离到 .tfvars 文件中,这将在其他地方结束。

我希望我做的事情显然是错误的!还尝试了 account1 文件夹中的 -var-file=terraform.tfvars 开关。

任何想法都会很棒。由于我阅读的所有内容都倾向于暗示这应该有效。

谢谢斯蒂芬

在此处输入图像描述

标签: variablesmoduleterraform

解决方案


刚刚从一个新文件夹中运行它 - 只占用了我的部分配置并且运行良好 - 所以文件中必须有一些东西。如果其他人遇到这个


推荐阅读