技術と魚

技術屋ですが経営もやってます

Apple Silicon(M1) darwin arm64でterraformをとりあえず動かす

(2021/2以降にこの記事を参照していると古い可能性が高いです!)

新年早々餅を食いながらMacbookのセットアップを始めているワシ。

Rosetta2で動かしていたけど、providerがうんともすんとも言わなくなったりして詰んでしまう。何かがおかしくなるっぽい。

対応状況どうなってるんやろ、と調べたところ、そもそもgolangがまだ対応してなかった。

blog.golang.org

「1.16 betaだったら対応してるよ!」とのこと。ならばGo1.16betaでterraformをソースからビルドする方式で頑張るしかあるまい。

その前に、brew uninstall terraform golang

Go 1.16 betaのインストール

Downloads - The Go Programming Language から、"go1.16beta1.darwin-arm64.pkg"をDL、checksumの検証

tar zxvf して、 /usr/local/go に配置する。 /usr/local/go/bin にバイナリがあるので、ここにパスを通すor通ってる場所にシンボリックリンクを貼る

% go version
go version go1.16beta1 darwin/arm64

なお↑の公式に書かれている go get golang.org/dl/go1.16beta1 する方法をやると、arm64ではなくamd64を選んでしまうため注意。

terraformをソースからビルド

% git clone git@github.com:hashicorp/terraform.git && cd terraform

# masterでなく特定バージョンを見たい場合は、適当にブランチを切り替え

% go install

これで $GOPATH/bin (default GOPATH = ~/go) にterraformが入る。

% terraform version
Terraform v0.15.0-dev
on darwin_arm64

とりあえず動くようになった

変なバグが起こるかもしれません。 golangの正式対応を待ちましょう。↓あたりを見ておくと良さそう。もしgoのバグを踏んだらレポートしよう。

github.com