【问题标题】:Can't download terraform module无法下载 terraform 模块
【发布时间】:2019-08-29 07:50:28
【问题描述】:

我在 terraform/terragrunt 中定义了我的应用程序的基础架构。 为了能够在不同的环境中部署完整的应用程序,我为整个应用程序创建了一个模块。但是我不断得到:

Error downloading modules: Error loading modules: module xxx: No Terraform configuration files found in directory: .terraform/modules/59ff835a2c7f654267e9f157739ec63a

无法真正解决问题

【问题讨论】:

    标签: terraform infrastructure infrastructure-as-code terragrunt


    【解决方案1】:

    如果指示为 source 的包/目录不包含任何 .tf 文件,Terraform 将生成此消息。

    可能发生这种情况的一个原因是如果source 引用的包(例如存储库或存档)实际上包含子目录中的多个模块,而根目录中没有任何内容。虽然the Standard Module Structure 要求在根中存在某种“默认”组合模块,然后其他子模块作为该默认的独立组件,但这是一种约定而不是要求,如果需要,一个包可以包含子目录中的模块。

    要引用a module in a subdirectory,请使用特殊的双斜杠// 分隔符将包路径与子目录路径分开。

    例如,要访问 Terraform Registry 中的 the modules/consul-cluster subdirectorythe hashicorp/consul/aws module,您的完整 source 地址将是 hashicorp/consul/aws//modules/consul-cluster。同样,对于 git 存储库源 git::https://example.com/network.git 的子目录 vpc,您可以将 source 设置为 git::https://example.com/network.git//vpc

    您指定的任何目录必须至少包含一个 .tf 文件,以便 Terraform 将其视为有效的 Terraform 模块。

    【讨论】:

      【解决方案2】:

      问题是我保留了多个目录结构,例如:security/iam 和这些目录中的文件。 似乎模块不支持这个,只是一个平面目录结构。 最后,我将我的单模块应用程序保存在一个平面目录中,并在文件中为“命名空间”添加前缀。

      顺便说一句,这是一个中间重构,直到我可以为应用程序创建更多模块。

      【讨论】:

        猜你喜欢
        • 2021-10-10
        • 2020-03-29
        • 2017-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-27
        • 2021-10-01
        • 1970-01-01
        相关资源
        最近更新 更多