执行terraform init报错Failed to query available provider packages如何处理
Terraform init拉取AWS Provider超时问题原因及解决方案
问题原因
- 核心原因为Terraform官方Provider镜像源
registry.terraform.io在国内网络环境下访问不稳定,网络请求超出超时阈值,导致无法获取Provider版本列表完成拉取 - 也可能是本地网络防火墙、代理规则未对Terraform进程生效,导致访问官方源的请求被阻断
解决方案
方案1:配置国内Terraform镜像源
在系统用户目录下创建Terraform全局配置文件:
- Windows系统路径为
%APPDATA%\terraform.rc - Linux/Mac系统路径为
~/.terraformrc
写入如下配置内容:
provider_installation { network_mirror { url = "https://mirrors.aliyun.com/terraform-providers/" } }
配置保存后重新执行terraform init即可正常拉取。
方案2:配置终端代理
如果你有可用的代理服务,可以在执行初始化命令前,先给当前终端配置代理环境变量:
Windows cmd终端执行:
set HTTP_PROXY=http://<代理IP>:<代理端口> set HTTPS_PROXY=http://<代理IP>:<代理端口>
Windows PowerShell终端执行:
$env:HTTP_PROXY="http://<代理IP>:<代理端口>" $env:HTTPS_PROXY="http://<代理IP>:<代理端口>"
配置完成后再执行terraform init即可。
方案3:离线安装Provider
若前两种方案都无法使用,可以手动下载对应版本的Provider压缩包,放到本地Terraform插件目录:
- 对应Windows amd64架构的aws 3.7.0版本Provider,放置路径为
%APPDATA%\terraform.d\plugins\registry.terraform.io\hashicorp\aws\3.7.0\windows_amd64
放置完成后执行以下命令完成离线初始化:
terraform init -plugin-dir=%APPDATA%\terraform.d\plugins
内容的提问来源于stack exchange,提问作者Raveendar Oddi
相关产品推荐
相关产品推荐

