我有一个存储库,包含几个单独的信任,它们共享一些模块,并使用类似于../../modules/rabbitmq的相对路径引用这些模块。目录的设置如下:
tf/
configs/
thing-1/
thing-2/
modules/
rabbitmq/
cluster/
...这些信任是用远程后端设置的,以便使用TF运行和状态:
terraform {
backend "remote" {
hostname = "app.terraform.io"
organization = "my-org"
workspaces {
prefix = "config-1-"
}
}
}运行terraform init很好。当我试图在本地运行terrform plan时,它会给出一个错误:
Initializing modules...
- rabbitmq in
Error: Unreadable module directory
Unable to evaluate directory symlink: lstat ../../modules: no such file or
directory如果没有将模块目录上传到TF或其他地方,则为...as。怎么回事?
发布于 2020-11-09 20:21:39
原来问题是(惊喜,惊喜!)它没有将模块目录上传到TF Cloud。这是因为配置和TF云工作区设置都没有任何迹象表明这个配置文件夹是更大的文件系统的一部分。默认情况下,只上传要运行terraform (及其所有内容)的目录。
要解决这个问题,我必须访问Terraform中给定工作区的“设置>常规”页面,并更改Terraform Working Directory设置以指定配置的路径,相对于相关的根目录--在本例中:tf/configs/config-1
之后,运行terraform plan将显示一条消息,指示它将上载哪个父目录,以便传递与工作区相关的整个上下文。
发布于 2022-03-17 23:31:04
用截图更新@mlsy的答案。使用Terraform云和免费帐户。将模块source解析为使用本地文件系统。
terraform version
Terraform v1.1.7
on linux_amd64

https://stackoverflow.com/questions/64758735
复制相似问题