找不到模块根目录。没有什么可输出的

时间:2017-06-14 11:30:56

标签: terraform

在我的根Terraform目录中运行terraform output我得到:

The module root could not be found. There is nothing to output.

我有以下文件:

iam.tf

resource "aws_iam_user" "a_user" {
  name = "a_user"
}

output.tf

data "aws_caller_identity" "current" {}

output "account_id" {
  value = "${data.aws_caller_identity.current.account_id}"
}

https://www.terraform.io/docs/modules/index.html说:

Root module That is the current working directory when you run terraform apply or get, holding the Terraform configuration files. It is itself a valid module.

知道错误消息的原因以及如何修复?

3 个答案:

答案 0 :(得分:8)

Terraform从localhost:3306文件中引用root module

此文件包含terraform.tfstate个文件以及.tf中有关您上次已知状态的所有信息。

在首次执行output variables命令到当前目录后生成。

只需运行terraform apply ,然后terraform apply将显示您的输出变量。

答案 1 :(得分:0)

您尚未在上面添加模块配置,但假设您有一个模块文件,那么您必须告诉terraform有关源的信息。如果源是一个名为example的子目录,位于与iam.tf和output.tf相同的位置,那么你必须添加模块如下,然后从output.tf和iam.tf所在的目录运行terraform apply:

module "consul" {
  source = "./example"

}

如果您的输出是远程位置(例如github),则源必须如下

module "consul" {
  source = "github.com/some-git.git"

}

然后你必须运行“terraform get”来下载你的模块。然后“terraform apply”应用模块,然后“terraform output”列出上面指定的输出

答案 2 :(得分:0)

问题是您尚未添加模块配置文件。

module "test_module" {
  source = "./test_module"
}

您必须确保模块配置存在且源也有效。要获得输出,您需要一个在运行terraform apply之后创建的状态文件。看起来你要么没有,要么你的州档案中没有输出。