これは何?
IaCを学ぼうの第1回、tenvというツールを解説しながらTerraformとOpenTofuの実行環境を整える記事です。
tenvとは?
以下のツールのインストールや利用バージョン管理を行えるツールです。
- OpenTofu
- Terraform
- Terragrunt
- Atoms
Terraformに関連したツールの管理に特化したツールという理解で一旦良いと思います。
もう少し記載しておくと、tfenvとほぼ同等の機能を備えています。
以前はtfenvを利用してTerraformのインストールや利用バージョン管理を行なっている方が結構多かった印象ですが
2025/01現在、tfenvのGitHubのmasterブランチを見ると長い期間更新されていません。
Terraformはもちろん、フォークされたOpenTofuやTerragrunt等の派生ツールが多数生まれているため
そういうツールを一括管理したいとか併用したいとかの要望がほぼ確実に出てくるのと
tfenvはBashスクリプトで書かれているのでWindowsで動作させるのはなかなかお辛かったのですが
tenvはGolangで書かれているためWindows含めて動作するようになりました。
上記背景から基本はtenvを使う形の方が良いのでは?と思っています。
tenvのインストール
公式のインストール方法を参照しましょう。
筆者はMacOSなので大人しくbrewを実行します。
$ brew install tenv
tenvの基本的な使い方
書式
$ tenv [ツール名] [コマンド]
ツール名
書式の中のツール名はそれぞれ以下のようになります。
- OpenTofu → tofu
- Terraform → tf
- Terragrunt → tg
- Atoms → at
インストール可能なバージョンの確認
このコマンドの実行結果からどのバージョンをインストールできるか(するか)を選択します
OpenTofu
$ tenv tofu list-remote
Terraform
$ tenv tf list-remote
特定バージョンのインストール
OpenTofu
$ tenv tofu install 1.9.0
$ tofu version
OpenTofu v1.9.0
on darwin_arm64
Terraform
$ tenv tf install 1.10.4
$terraform version
Terraform v1.10.4
on darwin_arm64
インストール済みバージョンの確認
OpenTofu
$ tenv tofu list
1.8.8 (used 2025-01-10)
1.9.0 (used 2025-01-17)
Terraform
$ tenv tf list
1.10.3 (used 2025-01-10)
1.10.4 (used 2025-01-17)
バージョン切り替え
OpenTofu
$ tenv tofu use 1.8.8
Written 1.8.8 in /Users/user/.tenv/OpenTofu/version
$ tofu version
OpenTofu v1.8.8
on darwin_arm64
Terraform
$ tenv tf use 1.10.3
Written 1.10.3 in /Users/user/.tenv/Terraform/version
$ terraform version
Terraform v1.10.3
on darwin_arm64
Your version of Terraform is out of date! The latest version
is 1.10.4. You can update by downloading from https://www.terraform.io/downloads.html
まとめ
tenvを有効活用していきましょう。
次回はTerraform(OpenTofu)の基本的なコードの書き方を紹介する記事を書きます。
お楽しみに〜^^