Mac M1(darwin_arm64)运行Terraform时azurerm provider不兼容如何解决
问题原因
报错核心是你只给hashicorp/template v2.2.0做了arm架构兼容适配,项目实际依赖的hashicorp/azurerm v2.46.0没做对应处理。azurerm v2.46.0是早期版本,官方没出darwin_arm64架构的预编译包,直接跑terraform init自然拉取失败。
修复方案
根据项目版本约束要求二选一即可:
方案1:保留指定的azurerm v2.46.0版本
- 先清理项目目录下之前初始化失败产生的缓存和锁文件:
rm -rf .terraform .terraform.lock.hcl
- 用m1-terraform-provider-helper安装对应版本的azurerm provider,自动完成arm64架构兼容编译:
m1-terraform-provider-helper install hashicorp/azurerm -v v2.46.0
如果执行install命令时提示provider镜像相关错误,先执行
m1-terraform-provider-helper activate激活本地provider代理后再重新执行安装命令即可。
- 重新执行初始化命令:
terraform init
后续如果项目里其他provider也报同类darwin_arm64平台不兼容错误,重复第二步替换对应provider名称和版本号安装即可。
方案2:升级azurerm到官方原生支持arm64的版本
如果项目没有强依赖v2.46.0版本,可以直接把Terraform配置里的azurerm版本约束修改为>= 2.90.0。azurerm从v2.90.0版本开始官方原生提供darwin_arm64架构安装包,不需要借助兼容工具,直接执行terraform init就能正常拉取安装。
内容的提问来源于stack exchange,提问作者der_radler
相关产品推荐
相关产品推荐

