tfenvでTerraformのバージョンを管理する
皆さん、こんにちは。技術開発グループのn-ozawanです。
WBC日本優勝!おめでとうございます!
本題です。
クラウド環境の構築に利用されるIaCとしてTerraformは有名ですね。そのTerraformのバージョンを管理するツールとしてtfenvがあります。今回はそのtfenvについてのお話です。
目次
tfenvとは?
tfenvはTerraformのバージョンを管理するツールです。複数のプロジェクトで、それぞれで異なるバージョンを利用している場合、バージョン管理が必要になります。もちろん、tfenvを使わなくてもTerraformをインストールすることは可能なのですが、tfenvを使えばバージョンの切り替えなどが楽になるのでお勧めです。
インストール手順
tfenvなのですが、残念ながらWindowsには対応しておらず、macOSかLinuxのどちらかになります。なのでWindowsユーザーはWSLを利用してtfenvをインストールします。
$ git clone --depth=1 https://github.com/tfutils/tfenv.git ~/.tfenv
$ echo 'export PATH=$PATH:$HOME/.tfenv/bin' >> ~/.bashrc
$ source ~/.bashrc
tfenvでTerraformのインストールするにはunzipをインストールしておく必要があります。
$ sudo apt-get update
$ sudo apt-get install zip
これにてtfenvを使用する準備は完了しました。
チートシート
Terraformをインストールする
$ tfenv install 0.7.0 # ver 0.7.0 をインストールする
$ tfenv install latest # 最新バージョンをインストールする
$ tfenv install latest:^0.8 # 正規表現`^0.8`に合致する最新バージョンをインストールする
$ tfenv install latest-allowed # Terraformのrequired_versionから、最新バージョンをインストールする
$ tfenv install min-required # Terraformのrequired_versionから、最低バージョンをインストールする
Terraformをアンインストールする
$ tfenv uninstall 0.7.0
$ tfenv uninstall latest
$ tfenv uninstall latest:^0.8
使用するバージョンを指定する
$ tfenv use min-required
$ tfenv use 0.7.0
$ tfenv use latest
$ tfenv use latest:^0.8
インストールしたバージョンを確認する
$ tfenv list
インストール可能なバージョンを確認する
$ tfenv list-remote
そのプロジェクトで使用するバージョンを指定しておく
プロジェクトルートに.terraform-version
というファイルを配置して、そこに使用するTerraformのバージョンを記述することで、そのバージョンを優先して利用することが出来ます。.terraform-version
ファイルを活用することで、「人によって使っているTerraformのバージョンが違う!」という問題を回避することが出来ます。
$ echo 1.3.5 > .terraform-version
$ tfenv install # ver 1.3.5 がインストールされる
$ tfenv use # ver 1.3.5 を使用する
$ echo 1.2.9 > .terraform-version
$ tfenv install # ver 1.2.9 がインストールされる
$ tfenv use # ver 1.2.9 を使用する
おわりに
tfenvのようなバージョン管理ツールは、プロジェクト毎に初期化された端末が貸与される現場では、常に扱うバージョンが固定になりがちなので、あまり恩恵は感じないと思います。しかし、1台の端末で複数のプロジェクトにかかわる場合には、その恩恵を受けれると思いますので、バージョン管理ツールを使ってインストールしてみてください。
ではまた。