Terratest CI从Terraform Cloud拉取模块时git进程报错退出代码1
解决Terratest CI拉取Terraform Cloud模块时Git退出码1错误
排查与修复步骤
验证Git凭证在CI环境的实际有效性
别只依赖yaml里的token配置,直接在CI环境手动执行git clone <你的Terraform Cloud模块Git地址>,测试能否正常拉取。也可以用git config --list查看当前Git的凭证配置,确认对应app.terraform.io的仓库是否有正确的访问令牌。如果是缓存问题,可重新配置凭证:git config --global credential.helper store echo "https://<你的Terraform Cloud令牌>:@app.terraform.io" > ~/.git-credentials检查模块仓库的权限与路径变更
确认Terraform Cloud中模块仓库的权限未调整,CI使用的服务账号必须拥有该仓库的读取权限。同时核对模块的引用分支、tag或路径是否有变动,保证Terratest代码里的模块引用路径与实际完全匹配。排查CI环境的Git版本与网络
旧版Git可能和Terraform Cloud的HTTPS凭证逻辑不兼容,执行git --version查看版本,低于2.30建议升级。另外测试网络连通性:curl -v https://app.terraform.io,确保CI环境能正常访问Terraform Cloud,未被代理、防火墙拦截。清理Terraform缓存强制重新拉取
Terratest会缓存模块文件,缓存损坏或旧凭证残留都可能导致失败。在CI步骤中添加清理命令:rm -rf .terraform/modules .terraform/.terraform.lock.hcl让Terraform重新拉取最新的模块文件。
核对Terraform模块引用格式
检查代码里的模块引用是否正确,示例格式如下:module "example" { source = "app.terraform.io/你的组织名/你的模块名/你的提供者" version = "1.0.0" }确保组织名、模块名、版本号无拼写错误,且该版本在Terraform Cloud中存在。
内容的提问来源于stack exchange,提问作者Julya Chan
相关产品推荐
相关产品推荐

