【问题标题】:Terraform: unknown module referencedTerraform:引用了未知模块
【发布时间】:2019-05-03 12:59:51
【问题描述】:

希望大家周末愉快。

对于在我的 GCP 项目中实现 nat 网关的最佳方式,我感到有些困惑。

我只是想简单地实现这个:https://github.com/GoogleCloudPlatform/terraform-google-nat-gateway

我已经把它扔进了我的 main.tf:

module "nat" {
  source     = "GoogleCloudPlatform/nat-gateway/google"
  region     = "us-central1"
  network    = "default"
  subnetwork = "default"
}

我已将此标签(根据自述文件)添加到我的计算实例中: ${module.nat.routing_tag_regional}

但是,我看到以下内容(我猜这有点道理):

Error: resource 'google_compute_instance.ds3-build' config: reference to undefined module "nat"

因为我的 root/main.tf 中有该模块,并且这些实例是通过另一个自定义编写的模块构建的。我是否需要从 root/main.tf 输出值才能在另一个模块中使用它?

root/
├── app1-deploy/
│   ├── main.tf
│   ├── outputs.tf
│   └── variables.tf
├── app2-deploy
│   ├── main.tf
│   ├── outputs.tf
│   └── variables.tf
├── app3-deploy
│   ├── main.tf
│   ├── outputs.tf
│   └── variables.tf
├── creds
│   └── account.json
├── scripts
│   └── startup.sh
├── main.tf
├── outputs.tf
├── variables.tf
└── terraform.tfvars

机器在 app1-deploy/main.tf app2-deploy/main.tf 等内部配置...而 module "nat"root/main.tf

【问题讨论】:

    标签: google-cloud-platform cloud terraform nat


    【解决方案1】:

    1) 计算资源是否独立于 Terraform 项目?如果是这样,他们看不到module.nat,因为您的root 项目是具有自己状态的不同项目。

    2) 如果您的 nat 模块是在 root 项目中创建的,我会使用计算模块上的变量传递 ${module.nat.routing_tag_regional}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-29
      • 2019-12-04
      • 2021-05-22
      • 2017-12-02
      • 1970-01-01
      • 2020-07-09
      • 2021-06-26
      相关资源
      最近更新 更多