在我的根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.
知道错误消息的原因以及如何修复?
答案 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之后创建的状态文件。看起来你要么没有,要么你的州档案中没有输出。