asdf で terraform 複数バージョン管理

asdf で terraform 複数バージョン管理


terraform はバージョンアップ頻度が高く、
プロジェクトによってバージョン差分が生じるので
複数バージョンを管理できると運用がスムーズです。

asdf 推した理由

terraform だけバージョン管理するのであれば tfenv がメジャーです。

ですが、 tflint, tfsec も導入を推奨しているので
あらゆるライブラリのバージョン管理が同じ方式でできるので
asdf を推してます。

MacOS に asdf インストール

参考: https://asdf-vm.com/guide/getting-started.html

1
2
3
4
5
6
7
$ brew install asdf

// zsh の場合
$ echo -e "\n. \"$(brew --prefix asdf)/libexec/asdf.sh\"" >> ~/.zshrc

// リロード
$ exec $SHELL -l

terraform plugin 追加 & 複数バージョンインストール

1
2
3
4
5
6
7
8
9
10
11
$ asdf plugin add terraform

// asdf 経由でインストール可能な version のリスト表示
$ asdf list all terraform

...
1.5.0
...

// 1.5.0 インストール
$ asdf install terraform 1.5.0

特定ディレクトリのみバージョンを指定する

1
2
3
$ cd path/to/terraform-project
$ asdf local terraform 1.5.0
$ asdf reshim terraform

.tool-versions が生成され、以下のようにバージョン管理されます。

1
terraform 1.5.0

.tool-versions が指定されていると
そのディレクトリ配下ではインストールされていればそのバージョンを利用する様になります。

tflint, tfsec も同様に asdf でバージョン管理できる

1
2
$ asdf plugin add tflint
$ asdf plugin add tfsec

ローカルで tflint, tfsec のバージョンアップによる挙動の変化を試したい場合に利用しています。

以上
参考になれば幸いです。

Author

Kenzo Tanaka

Posted on

2023-07-08

Licensed under

コメント