Terraform模块-无法从根目录访问变量

Terraform模块-无法从根目录访问变量,terraform,terraform-provider-openstack,Terraform,Terraform Provider Openstack,我正在尝试使用以下语法将一个变量从根模块传递到子模块,但我无法做到这一点: └── Terraform ├── main.tf ├── variable.tf └── module ├──main.tf ├── variable.tf 地形版本: Terraform v0.11.11 + provider.openstack v1.15.0 地形配置文件 /Terrafor

我正在尝试使用以下语法将一个变量从根模块传递到子模块,但我无法做到这一点:

└── Terraform
            ├── main.tf
            ├── variable.tf
    └── module
                ├──main.tf
                ├── variable.tf
地形版本:

Terraform v0.11.11
+ provider.openstack v1.15.0
地形配置文件 /Terraform/main.tf:

provider "openstack" {
openstack_user_name         = "${var.openstack_user_name}"
openstack_tenant_name   = "${var.openstack_tenant_name}"
openstack_password      = "${var.openstack_password}"
openstack_auth_url          = "${var.openstack_auth_url}"
domain_name             = "${var.domain_name}"
}
module "testMod" {
name                    = "${var.name}"
imageId                     = "${var.imageId}"
flavor_name                 = "${var.flavor_name}"
openstack_keypair   = "${var.openstack_keypair}"
tenant_network_id           = "${var.tenant_network_id}"
tenant_network      = "${var.tenant_network}"
source = "./modules"
}
/Terraform/variable.tf:

variable "name" {default = "XXX"}
variable "imageId" {default = "11-22-33"}
variable "flavor_name"{default = "flavor"}
...
variable "name" {}
variable "imageId" {}
variable "flavor_name" {}
variable "openstack_keypair" {}
variable "tenant_network_id"{}
variable "tenant_network" {}
/Terraform/modules/main.tf:

resource "openstack_compute_instance_v2" "test" {
 name               = "${var.name}"
imageId                 = "${var.imageId}"
flavor_name             = "${var.flavor_name}"
openstack_keypair       = "${var.openstack_keypair}"
security_groups     =   ["default"]

network {
tenant_network_id       = "${var.tenant_network_id}"
tenant_network      = "${var.tenant_network}"
    }
}
/Terraform/modules/variable.tf:

variable "name" {default = "XXX"}
variable "imageId" {default = "11-22-33"}
variable "flavor_name"{default = "flavor"}
...
variable "name" {}
variable "imageId" {}
variable "flavor_name" {}
variable "openstack_keypair" {}
variable "tenant_network_id"{}
variable "tenant_network" {}
实际行为
错误:module.testMod.openstack\u compute\u instance\u v2.test::无效或未知键:imageId

复制步骤
  • terraforminit
  • terraform应用

  • 不确定这里出了什么问题

    错误提示您使用未知的键
    imageId
    。此消息是准确的,因为实际上,键应该是
    image\u id
    。您可以查看Terraform资源文档并注意参数的存在

    您的代码将如下所示:

    resource "openstack_compute_instance_v2" "test" {
      name              = "${var.name}"
      image_id          = "${var.imageId}"
      flavor_name       = "${var.flavor_name}"
      openstack_keypair = "${var.openstack_keypair}"
      security_groups   = ["default"]
    }