运行terraspace bundle时提示not a git repository错误如何处理
错误根因
- 缓存目录损坏:此前执行
terraspace bundle时被意外中断(如进程强制终止、磁盘空间不足、网络拉取超时),导致对应模块仅下载了部分文件,缺失.git目录就停止运行,残留了不完整的缓存目录 - Terrafile模块配置错误:报错模块的source字段配置的是压缩包下载地址而非git仓库地址,Terraspace下载解压压缩包后不会生成.git目录,执行git pull操作时自然报错
- 权限异常:Terraspace运行用户没有缓存目录的写入权限,git克隆仓库时无法生成.git目录,仅写入了模块代码文件
- 旧版本Terraspace bug:低于0.6.20版本的Terraspace bundler组件存在git缓存处理逻辑缺陷,拉取部分公共模块时会跳过.git目录的生成
彻底解决方法
- 清理损坏的缓存目录
执行以下命令删除报错模块的缓存,也可直接删除整个缓存目录强制所有模块重新拉取:rm -rf /private/tmp/terraspace/bundler/cache/github.com/cloudposse/terraform-aws-cloudfront-s3-cdn
如果要全量清缓存:rm -rf /private/tmp/terraspace/bundler/cache - 校验Terrafile配置
确认报错模块的source字段为git仓库地址,而非压缩包下载链接,正确配置示例如下:
mod "aws-cloudfront-s3-cdn", source: "git@github.com:cloudposse/terraform-aws-cloudfront-s3-cdn.git", version: "v0.42.0"
如果使用短路径格式,需确认模块名、分支/Tag配置没有拼写错误。
- 强制重新安装模块
清理缓存后执行带--reinstall参数的bundle命令,跳过现有缓存校验直接拉取所有模块:terraspace bundle --reinstall - 升级Terraspace到最新稳定版
如果上述操作后仍有相同报错,可升级Terraspace到最新稳定版,修复旧版本bundler组件的缓存处理bug。
内容的提问来源于stack exchange,提问作者Joseph Siefers
相关产品推荐
相关产品推荐

