Terraform初始化hashicorp/aws v3.56.0 provider失败如何修复?
修复方案
清理无效的源码目录
/var/terraform下的terraform-provider-aws-3.56.0是AWS provider的源代码包,包含go.mod、项目文档等开发文件,不是Terraform可识别的编译后二进制文件,直接删除该目录即可,避免Terraform错误扫描该路径。对齐provider版本约束
当前你容器内的本地插件目录/opt/terraform/plugins下仅存放了3.62.0版本的AWS provider,但你当前Terraform配置中指定的版本约束是~> 3.56.0,二者不匹配导致找不到符合要求的版本。二选一调整即可:
- 修改provider配置块的版本约束,将
version字段改为">=3.56.0, <4.0.0"兼容已有的3.62.0版本 - 重新下载3.56.0版本的AWS provider二进制包,按照你Dockerfile中的路径规则存放到
/opt/terraform/plugins/registry.terraform.io/hashicorp/aws/3.56.0/linux_amd64下
清理本地缓存
如果之前在/var/terraform工作目录下执行过错误的初始化命令,先删除该目录下的.terraform隐藏目录和.terraform.lock.hcl文件,避免缓存的插件查找路径和版本约束影响后续执行。确认执行权限正确
执行terraform init的用户需要对/opt/terraform/plugins全路径有读取权限,同时路径下的provider二进制文件需要有可执行权限,你Dockerfile中配置的775权限可满足要求,如有异常可手动执行chmod +x给二进制文件加可执行权限。验证初始化命令参数
执行初始化时确保使用正确的插件目录参数:terraform init -plugin-dir=/opt/terraform/plugins,不要省略参数导致Terraform扫描其他错误路径。
内容的提问来源于stack exchange,提问作者SachinKumar
相关产品推荐
相关产品推荐

