89
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

tfenvでTerraformのバージョン管理をする

tfenvはTerraformのバージョン管理を簡単にするために作ったツールです。rbenvにインスパイアされてます。

現在複数の環境でTerraformを使ってて、それぞれ使っているバージョンが違う場合があるので、バージョンの切り替えを楽にしたい、間違って違うバージョンを使ってしまう事故を防ぎたい(tfstateの互換性が無かったりする場合があるので)という動機で作りました。

使い方(v0.5.x)

Install/Uninstall

GitHubから任意のパスにcloneしてtfenv/binにパスを通すだけ。
アンインストールはそのパスを消すだけです。

もしくはMacユーザーの方はHomebrewでもインストールできます

$ brew install tfenv

tfenv install/uninstall

指定したバージョンをインストール/アンインストールしますlatestで最新版をインストールします。 latest:^0.8という書き方もでき、この場合0.8系での最新がインストールされます。

$ tfenv install 0.8.0
$ tfenv install latest # latest version
$ tfenv install latest:^0.8 # latest version with Regex
$ tfenv uninstall 0.8.0

shasum コマンドと keybaseがインストールされていると、よりセキュアにダウンロード可能になります。 参考PR

tfenv use

利用するバージョンを切り替えます。こちらもlatest:^0.8という書き方ができます。

$ tfenv use 0.8.0
$ tfenv use latest:^0.8 # latest version with Regex

tfenv list

現在インストールしているバージョンを列挙します。

% tfenv list
0.9.0-beta2
0.8.8

tfenv list-remote

インストール可能なバージョンをリモートから取得して列挙します。

% tfenv list-remote
0.9.0-beta2
0.9.0-beta1
0.8.8
0.8.7
0.8.6
...

.terraform-version

rbenvの.ruby-versionと同じような機能で、プロジェクトルートに.terraform-versionというファイルを置いておくとそのファイルに書かれたバージョンを優先して利用します。また、引数なしのtfenv installでそのバージョンをインストール出来るようになります。

$ echo 0.7.3 > .terraform-version

$ terraform --version
Terraform v0.7.3

$ echo latest:^0.8 > .terraform-version

$ terraform --version
Terraform v0.8.8
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
89
Help us understand the problem. What are the problem?