如何让"terraform init"在我的Apple M1 Macbook for Azure平台



在Macbook上运行terraform init时,出现以下错误。有人能帮忙吗?

Provider registry.terraform.io/hashicorp/template v2.2.0没有适用于您当前平台的软件包darwin_arm64。

我的地形是1.1.4版本。

在苹果推出新的Apple Silicon平台之前的一段时间,hashicorp/template插件已经过时(支持内置的templatefile功能(。该提供商唯一可用的版本是在该平台存在之前发布的版本。

要在Apple Silicon硬件上取得进展,您将有两个主要选项:

  • 理想情况下,计划从过时的提供程序迁移出去,转而使用内置的模板函数。该函数内置于Terraform本身,因此不需要任何外部提供程序即可工作。它还比旧的template_file数据源更有能力,因为templatefile可以接受任何类型的模板变量,而template_file只支持字符串。

  • 如果您还没有准备好从该提供商迁移,那么您可能更喜欢在Rosetta 2仿真下使用Terraform的darwin_amd64版本。如果您将Terraform CLI版本用于darwin_amd64,那么它将依次安装darwin_amd64提供程序包,因此您将能够使用模板提供程序的最终版本v2.2.0。

    Terraform在罗塞塔2下没有得到官方支持,所以它的工作效果将取决于苹果仿真层的完整程度,但在你准备停止使用这个过时的提供商之前,它有望成为一个短期的解决方案。

我使用tfenv包解决了这个问题,该包可以构建适合平台架构的特定Terraform版本。

我运行以下程序来安装一个在我的M1 Macbook下运行的版本(在我的情况下是1.3.3版本(:

brew uninstall terraform
brew install tfenv
TFENV_ARCH=amd64 tfenv install 1.3.3
tfenv use 1.3.3

为我建造"hashicorp/template";解决方案来自源头。我用的是terragrumt。

git clone https://github.com/hashicorp/terraform-provider-template.git
cd terraform-provider-template
go build 

将二进制文件移到terraform插件目录中。如果插件的目录不存在,则可以创建该目录。

mv terraform-provider-template ~/.terraform.d/plugins/registry.terraform.io/hashicorp/template/2.2.0/darwin_arm64/terraform-provider-template

设置地形提供程序模板二进制文件的执行权限。

chmod +x ~/.terraform.d/plugins/registry.terraform.io/hashicorp/template/2.2.0/darwin_arm64/terraform-provider-template

项目文件夹中的terraform initterragrunt init

相关内容

  • 没有找到相关文章

最新更新