首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用相对本地路径引用模块时Terraform云失败

使用相对本地路径引用模块时Terraform云失败
EN

Stack Overflow用户
提问于 2020-11-09 20:21:39
回答 4查看 7.2K关注 0票数 15

我有一个存储库,包含几个单独的信任,它们共享一些模块,并使用类似于../../modules/rabbitmq的相对路径引用这些模块。目录的设置如下:

代码语言:javascript
复制
tf/
  configs/
    thing-1/
    thing-2/
  modules/
    rabbitmq/
    cluster/
    ...

这些信任是用远程后端设置的,以便使用TF运行和状态:

代码语言:javascript
复制
terraform {
  backend "remote" {
    hostname     = "app.terraform.io"
    organization = "my-org"

    workspaces {
      prefix = "config-1-"
    }
  }
}

运行terraform init很好。当我试图在本地运行terrform plan时,它会给出一个错误:

代码语言:javascript
复制
Initializing modules...
- rabbitmq in 

Error: Unreadable module directory

Unable to evaluate directory symlink: lstat ../../modules: no such file or
directory

如果没有将模块目录上传到TF或其他地方,则为...as。怎么回事?

EN

回答 4

Stack Overflow用户

发布于 2020-11-09 20:21:39

原来问题是(惊喜,惊喜!)它没有将模块目录上传到TF Cloud。这是因为配置和TF云工作区设置都没有任何迹象表明这个配置文件夹是更大的文件系统的一部分。默认情况下,只上传要运行terraform (及其所有内容)的目录。

要解决这个问题,我必须访问Terraform中给定工作区的“设置>常规”页面,并更改Terraform Working Directory设置以指定配置的路径,相对于相关的根目录--在本例中:tf/configs/config-1

之后,运行terraform plan将显示一条消息,指示它将上载哪个父目录,以便传递与工作区相关的整个上下文。

票数 23
EN

Stack Overflow用户

发布于 2022-03-17 23:31:04

用截图更新@mlsy的答案。使用Terraform云免费帐户。将模块source解析为使用本地文件系统。

代码语言:javascript
复制
terraform version
Terraform v1.1.7
on linux_amd64

票数 3
EN

Stack Overflow用户

发布于 2022-09-02 19:05:28

这是我为自己工作的东西。我使用了required_version = ">= 0.11“,然后将所有具有提供程序和模块的tf文件放在子文件夹中。保留了需要根级提供程序的version.tf。不知何故,我使用了terraform.exe所在的相同的文件夹路径。然后构建项目,而不是在main.tf级别执行或者不构建就执行。它为我下载了所有的提供者和模块。我还没有参加GCP。

在这里输入图像描述 - Windows上的文件夹路径

在这里输入图像描述 - InteliJ结构

在这里输入图像描述在这里输入图像描述

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64758735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档