在 M1 Mac 上无法使用该版本的 Terraform 吗?

我打算用 Terraform 的版本 0.12.5 来学习,但在 M1 Mac 上无法运行!
我困惑了,不知道该怎么办……然后找到了解决的方法。

让我们学习 Terraform。

请允许我稍微讲述一下,为什么我想要学习 Terraform 的原因。

好了,我要开始学习AWS了!不过当我想要开始学习时,我不知道该做些什么,是否经历过这样的想法呢?
所以我首先开始了资格的学习。
然后大约一个月后……顺利地获得了资格!
虽然我获得了资格,想要构建一些系统,但是……嗯?我什么都建不起来。

我在那个时候学习了Terraform,而且发现我对它非常着迷!我使用的学习资料是《实践Terraform:在AWS中进行系统设计和最佳实践》。

undefined

通过自己创建和删除AWS资源来建立起常见的资源,并在此过程中积累了各种知识与经验,这样当我想要构建自己所需的架构时,我就能够大致知道该如何搜索并进行搭建了。

在M1 Mac上无法运行

这本《实践Terraform:AWS系统设计与最佳实践》非常好,但书中使用的版本是0.12.5。
当我第一次根据这本书使用Terraform进行AWS构建时,我按照当时的最新版本进行操作。
然而,由于版本差异,我经常无法按照书中的指导顺利进行,遇到了相当多的困难。

对于初次了解 Terraform 的意义来说,最好先统一版本并进行实践,以避免考虑无用之事。然而遗憾的是,版本0.12.5没有针对M1 Mac 提供支持。

01_not_installed

被告知为”未找到”,无法安装。

拼命让它动起来

在使用M1 Mac上的tfenv时,我发现无法成功下载特定版本的Terraform。我在一篇文章中找到了解决方法,它说如果手动下载AMD版本的二进制文件,就可以使用了!

使用asdf来安装版本0.12.5。

在《关于在 M1 Mac 上使用 tfenv 下载特定版本 Terraform 失败的问题》,文章中提到了使用 tfenv 的方法,但我个人使用 asdf,所以我打算在这篇文章中介绍 asdf 的使用方法。

手动获取二进制文件

我会手动下载AMD版本的二进制文件。

$ wget https://releases.hashicorp.com/terraform/0.12.5/terraform_0.12.5_darwin_amd64.zip

--2022-04-03 23:35:41--  https://releases.hashicorp.com/terraform/0.12.5/terraform_0.12.5_darwin_amd64.zip
releases.hashicorp.com (releases.hashicorp.com) をDNSに問いあわせています... 151.101.193.183, 151.101.1.183, 151.101.65.183, ...
releases.hashicorp.com (releases.hashicorp.com)|151.101.193.183|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 16778594 (16M) [application/zip]
`terraform_0.12.5_darwin_amd64.zip' に保存中

terraform_0.12.5_darwin_ 100%[==================================>]  16.00M  7.36MB/s 時間 2.2s

2022-04-03 23:35:43 (7.36 MB/s) - `terraform_0.12.5_darwin_amd64.zip' へ保存完了 [16778594/16778594]

将二进制文件复制到asdf的管理位置。

首先,解压下载的zip文件。

$ unzip terraform_0.12.5_darwin_amd64.zip

Archive:  terraform_0.12.5_darwin_amd64.zip
  inflating: terraform

当安装特定版本的asdf时,需要手动创建相应的目录。

$ mkdir -p ~/.asdf/installs/terraform/0.12.5/bin

将terraform二进制文件移动到创建的目录中。

$ mv terraform ~/.asdf/installs/terraform/0.12.5/bin/

删除不再需要的东西。

$ rm terraform_0.12.5_darwin_amd64.zip

让asdf识别版本0.12.5

运行 reshim 命令以手动添加并识别 Terraform 的二进制文件。

$ asdf reshim terraform 0.12.5

执行这个命令会在 ~/.asdf/shims/terraform 文件中添加一个版本号。添加的内容是 “# asdf-plugin: Terraform 0.12.5″。

只要以类似下面的方式显示,应该就没有问题了。

$ cat ~/.asdf/shims/terraform
!/usr/bin/env bash
# asdf-plugin: terraform 1.1.0
# asdf-plugin: terraform 0.12.5
exec /opt/homebrew/opt/asdf/libexec/bin/asdf exec "terraform" "$@"

确认插件版本列表中显示0.12.5。

$ asdf list terraform
  0.12.5
  1.1.0

执行Terraform命令以确认是否可使用版本0.12.5。

# グローバルで使用する terraform のバージョンを 0.12.5 にする
$ asdf global terraform 0.12.5

# terraform のバージョンを確認する
$ terraform -v
Terraform v0.12.5

Your version of Terraform is out of date! The latest version
is 1.1.7. You can update by downloading from www.terraform.io/downloads.html

安装已经完成了,辛苦了。

最后

我已经在一篇文章中详细介绍了如何在M1 Mac上使用版本1.0.1之前的Terraform。虽然我每天都在使用M1 Mac,但与Intel Mac的区别仍然让我感到困惑,尽管如此我还是设法能够使用它。

M1 Mac 真令人不爽啊……。

广告
将在 10 秒后关闭
bannerAds