terragrunt init成功后plan执行报错等待插件启动超时问题咨询
Terragrunt plan 插件加载超时/崩溃修复方案
核心原因
你遇到的Could not load plugin以及provider启动超时问题,本质是Terragrunt的本地缓存逻辑和Terraform的provider校验逻辑不一致导致的:即使terragrunt init显示执行成功,也可能存在缓存的provider二进制损坏、版本不匹配、进程启动资源不足的问题。
修复步骤
1. 清理损坏缓存
首先删除当前工作目录下所有相关缓存文件,避免残留损坏数据干扰:
rm -rf .terragrunt-cache .terraform .terraform.lock.hcl
如果你配置了全局Terraform插件缓存,默认路径为~/.terraform.d/plugin-cache,也请删除其中的hashicorp/aws和hashicorp/vault对应版本的二进制文件。
2. 强制重新初始化
带升级参数重新执行初始化,强制拉取完全匹配版本约束的provider文件:
terragrunt init --upgrade
3. 验证provider兼容性
初始化完成后先执行以下命令确认provider版本和约束无冲突:
terragrunt providers
无报错后再执行plan操作即可:
terragrunt plan
特殊场景排查
如果清理后仍出现无响应、崩溃问题,检查两个常见原因:
- 设备内存不足:aws和vault provider启动时单进程至少需要占用1~2GB内存,多目录并行执行时内存占用会成倍增长,内存不足会直接导致provider进程僵死超时,甚至拖垮系统,执行操作前关闭多余占用内存的程序即可。
- 安全工具拦截:部分企业杀毒软件、终端安全规则会误拦截Terraform provider二进制文件的执行,导致进程无法启动超时,可以临时关闭安全规则测试,确认问题后将provider目录加入白名单即可。
内容的提问来源于stack exchange,提问作者Ravi Prasad
相关产品推荐
相关产品推荐

