【问题标题】:terraform init not working when specifying modules指定模块时,terraform init 不起作用
【发布时间】:2019-07-05 08:21:12
【问题描述】:

我是 terraform 的新手,正在尝试解决我在测试模块时遇到的一个小问题。

以下是我在本地计算机中的文件夹结构。

我在存储文件夹级别有以下代码

#-------storage/main.tf

provider "aws" {
  region = "us-east-1"
}

resource "aws_s3_bucket" "my-first-terraform-bucket" {
    bucket = "first-terraform-bucket"
    acl = "private"
    force_destroy = true
}

sn-p 以下来自 main_code 级引用存储模块

#-------main_code/main.tf

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

当我从存储文件夹发出 terraform init / plan / apply 时,它工作得非常好,并且 terraform 创建了 s3 存储桶。

但是当我从 main_code 文件夹中尝试相同的操作时,我收到以下错误 -

main_code@DFW11-8041WL3: terraform init
Initializing modules...
- module.storage
Error downloading modules: Error loading modules: module storage: No Terraform configuration files found in directory: .terraform/modules/0d1a7f4efdea90caaf99886fa2f65e95

我在堆栈溢出和其他 github 问题论坛上阅读了许多问题板,但没有帮助解决这个问题。不知道我错过了什么!

【问题讨论】:

  • try deleting .terraform 文件夹在./storage 文件夹中。此外,如果./storage 是一个模块,则不需要包含provider aws 部分,因为它将继承自调用该模块的任何代码。

标签: terraform terraform-provider-aws


【解决方案1】:

我同意来自@rclement 的 cmets。

解决 terraform 问题的几种方法。

  1. 清理.terraform 文件夹并重新运行terraform init

这始终是第一选择。但是下次运行terraform init需要时间,它会重新开始安装所有提供程序和模块。

  1. 如果不想清理.terraform以节省部署时间,可以运行terraform get --update=true

大多数情况下,您对模块进行了一些更改,需要对其进行刷新。

【讨论】:

    【解决方案2】:

    只需运行terraform get --update 即可更新现有模块。如果这不起作用,请删除 .terraform 文件夹。

    【讨论】:

      【解决方案3】:

      我遇到了类似的问题,但对我来说问题是,我创建的模块正在寻找 providers.tf,因此必须为模块添加它并且它有效。 p>

      ├── main.tf
      ├── modules
      │   └── droplets
      │       ├── main.tf
      │       ├── providers.tf
      │       └── variables.tf
      └── variables.tf
      

      所以我的提供程序存在于之前的根位置,模块无法使用,所以对我来说是个问题。

      【讨论】:

      • 这为我解决了这个问题。我错误地认为在根目录中提供 version.tf 会传播子模块......不。版本需要放置在使用它们的子模块中,否则 terraform 似乎试图找到自己的资源版本,找不到它们并且无法初始化
      猜你喜欢
      • 1970-01-01
      • 2021-01-20
      • 2021-12-14
      • 1970-01-01
      • 2021-08-22
      • 2023-02-01
      • 2015-12-13
      • 2017-05-16
      • 2020-04-08
      相关资源
      最近更新 更多