tfenvでプロジェクトごとにterraformのバージョンを固定する


Terraformを使用してプロジェクトを作成していると、バージョンを固定していたり、複数バージョンを使い分けたりすることがあると思います。
Terraformのバージョンを使い分けることが出来るtfenvを紹介します。

tfenvとは

tfenvとはTerraformのバージョンをプロジェクトごとに切り替えたりすることが出来るツールです。
これを利用すると

  • Aプロジェクト → v12.1
  • Bプロジェクト → v15.1
  • Cプロジェクト → v1.0.1

のように柔軟に使用するTerraformバージョンを切り替えることが可能となります。

tfenvのインストール

以下を実施することでインストール可能です。

Mac

Terminal window
brew install tfenv

手動インストール

Terminal window
git clone https://github.com/tfutils/tfenv.git ~/.tfenv
echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bash_profile # bash利用の場合

anyenv経由

Terminal window
anyenv install tfenv
exec $SHELL -l

tfenvの使い方

利用可能なTerraformのバージョンを以下のコマンドで確認可能です。

Terminal window
tfenv list-remote

これをもとにまずは、一つインストールしてみましょう。

Terminal window
tfenv install latest # 最新版のインストール
tfenv install 1.0.1 # v1.0.1のインストール

インストールしたバージョンを利用するにはuseコマンドを使用します。

Terminal window
tfenv use 1.0.1

インストール済みのバージョンはlistコマンドで確認できます。

Terminal window
tfenv list
# * 1.0.3 (set by /Users/XXXX/.anyenv/envs/tfenv/version)
# 1.0.1

useコマンドを利用することで、使用するTerraformバージョンを任意のバージョンで利用することができます。

プロジェクトごとに自動でバージョン切り替え

プロジェクトのルートに.terraform-versionを配置することで、tfenvが自動的にバージョンを切り替えます。

Terminal window
echo 1.0.1 > .terraform-version