Terragrunt run-all plan模块下载路径错误原因咨询
Terragrunt模块路径解析错误的原因及解决方法
问题根源
Terragrunt解析source配置中的相对路径时,是相对于当前terragrunt.hcl文件所在的目录,而非执行terragrunt命令的工作目录。
你的目录结构中:
terragrunt.hcl位于/infra-integratiehub/environments/uva-test/basis/appconfiguration/- 配置里的
source = "../../modules/appconfiguration" - 从该hcl文件目录向上两级,最终指向
/infra-integratiehub/environments/uva-test/,拼接后路径就是/infra-integratiehub/environments/uva-test/modules/appconfiguration,这和你预期的根目录下modules不符。
解决方法
方法1:修正相对路径
将source的相对路径调整为从hcl文件目录到根目录modules的正确层级:
terraform { source = "../../../modules/appconfiguration" }
- 从
/infra-integratiehub/environments/uva-test/basis/appconfiguration/向上三级,到达根目录/infra-integratiehub/,再拼接modules/appconfiguration即可得到正确路径。
方法2:使用根目录定位函数(更可靠)
避免手动计算相对层级,通过Terragrunt内置函数定位根目录后拼接路径:
- 确保根目录
/infra-integratiehub/下存在terragrunt.hcl(可为空配置) - 修改hcl配置:
locals { # 找到根目录的terragrunt.hcl,获取其所在目录路径 root_dir = dirname(find_in_parent_folders("terragrunt.hcl")) } terraform { source = "${local.root_dir}/modules/appconfiguration" }
这种方式不受目录结构变动影响,维护性更强。
内容的提问来源于stack exchange,提问作者MyName
相关产品推荐
相关产品推荐

