■ はじめに
Terraform の本読んで勉強してて tfenv がでてきたので、メモ。
目次
【1】tfenv 1)何のため? 【2】主な機能 【3】環境設定 1)サポートOS 2)インストール 【4】主なコマンド 0)tfenv list-remote 1)tfenv install 2)tfenv use 3)tfenv list 【5】「.terraform-version」ファイルについて 1)ディレクトリごとにバージョン切替
【1】tfenv
https://github.com/tfutils/tfenv#tfenv
Terraform version manager inspired by rbenv 【訳】Terraform バージョン管理。rbenvに感化された。 => Python でいう pyenv みたいなもん。
仮想環境 ~ pyenv ~
https://dk521123.hatenablog.com/entry/2022/02/13/000000
1)何のため?
* Terraform において、一度適応したバージョンより新しいバージョンでしか 適用することができない => 複数で開発していた場合、古いバージョンを使っているメンバーは terraform apply できない事態が発生する => tfenv を使うと、同じPCで複数のTerraform バージョンを切り替えて 使用することができる
【2】主な機能
[1] 複数バージョンのTerraform バイナリの管理 [2] コマンドベースでのTerraform バージョンの切替 [3] 「.terraform-version」ファイルによるディレクトリ内での優先利用設定 => 詳細は、後述「【5】「.terraform-version」ファイルについて」を参照
【3】環境設定
1)サポートOS
https://github.com/tfutils/tfenv#support
* Linux * Mac
2)インストール
https://github.com/tfutils/tfenv#manual
git clone --depth=1 https://github.com/tfutils/tfenv.git ~/.tfenv source ~/.bash_profile # For WSL # echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bash_profile # source ~/.bashrc # To confirm tfenv --version # e.g. tfenv 3.0.0
【4】主なコマンド
0)tfenv list-remote
* 使用可能なバージョンをリモートから取得して一覧表示
https://github.com/tfutils/tfenv#tfenv-list-remote
tfenv list-remote 1.5.0-alpha20230504 1.5.0-alpha20230405 1.4.6 1.4.5 ...
1)tfenv install
* 指定したTerraform バージョンをインストール
https://github.com/tfutils/tfenv#tfenv-install-version
tfenv install tfenv install 0.7.0 tfenv install latest tfenv install latest:^0.8 tfenv install latest-allowed tfenv install min-required
2)tfenv use
* 利用するバージョンを切り替え
https://github.com/tfutils/tfenv#tfenv-use-version
コマンド例
tfenv use tfenv use min-required tfenv use 0.7.0 tfenv use latest tfenv use latest:^0.8
3)tfenv list
tfenv list
参考文献
https://qiita.com/kamatama_41/items/ba59a070d8389aab7694
https://zenn.dev/mihohoi/articles/4e15a098a08c25
【5】「.terraform-version」ファイルについて
* プロジェクトルートにファイル「.terraform-version」とを置いておくと そのファイルに書かれたバージョンを優先して利用する
1)ディレクトリごとにバージョン切替
mkdir project1 mkdir project2 # 「tfenv list-remote」で使用可能なバージョンを調べてもいい echo 1.4.6 > .terraform-version echo 1.1.1 > ./project1/.terraform-version echo latest:^1.3.2 > ./project2/.terraform-version # To check version for each directory terraform --version # 「Terraform v1.4.6」 cd project1 terraform --version # Installされていなかったら、インストールする # version '1.1.1' is not installed ... # ... # Terraform v1.1.1 cd ../project2 terraform --version # version '1.3.2' is not installed ... # ... # Terraform v1.3.2
関連記事
Terraform ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/04/05/000224
Terraform ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/12/09/222057
Terraform ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/05/03/000000
Terraform ~ direnv / プロジェクト隔離 ~
https://dk521123.hatenablog.com/entry/2023/01/15/000000