name: manage-version description: Terraform/Terragrunt のバージョンを管理する。「terraform バージョン」「tfenv」「tgswitch」「tf バージョン切り替え」「terraform インストール」「バージョン確認」「tf version」「terraform 1.5 にして」「tg バージョン」などで起動。 allowed-tools: [Bash, Read]
Version Manager
tfenv/tgswitch を使用して Terraform/Terragrunt のバージョンを管理します。
対応操作
| 操作 | トリガー例 | コマンド |
|---|---|---|
| バージョン確認 | 「バージョン確認」「tf version」 | terraform version |
| 一覧表示 | 「インストール済み一覧」「tfenv list」 | tfenv list |
| リモート一覧 | 「利用可能バージョン」「list-remote」 | tfenv list-remote |
| インストール | 「1.5.0 インストール」「install」 | tfenv install |
| 切り替え | 「1.5.0 に切り替え」「use」 | tfenv use |
実行手順
1. ツールの確認
# tfenv の確認
which tfenv && tfenv --version
# tgswitch の確認
which tgswitch && tgswitch --version
# tenv の確認(統合ツール)
which tenv && tenv --version
2. 現在のバージョン確認
Terraform:
terraform version
Terragrunt:
terragrunt --version
3. インストール済みバージョン一覧
tfenv:
tfenv list
tgswitch:
tgswitch --list-all
4. 利用可能なバージョン一覧
tfenv:
tfenv list-remote | head -20
5. バージョンインストール
tfenv:
tfenv install {version}
# 例: tfenv install 1.5.0
# 例: tfenv install latest
tgswitch:
tgswitch {version}
# 例: tgswitch 0.50.0
6. バージョン切り替え
tfenv:
tfenv use {version}
# 例: tfenv use 1.5.0
tgswitch:
tgswitch {version}
tenv(統合ツール):
# Terraform バージョン切り替え
tenv tf use {version}
# 例: tenv tf use 1.5.0
# Terragrunt バージョン切り替え
tenv tg use {version}
# 例: tenv tg use 0.50.0
# インストール
tenv tf install {version}
tenv tg install {version}
# 一覧表示
tenv tf list
tenv tg list
7. 出力フォーマット
## バージョン情報
### 現在のバージョン
- Terraform: {version}
- Terragrunt: {version}
### インストール済み(Terraform)
| バージョン | 状態 |
|-----------|------|
| 1.5.0 | ✅ 使用中 |
| 1.4.6 | |
| 1.3.9 | |
### プロジェクト設定
- .terraform-version: {内容}
- .terragrunt-version: {内容}
バージョンファイル
.terraform-version
プロジェクトで使用する Terraform バージョンを固定:
1.5.0
tfenv は自動的にこのファイルを読み取ってバージョンを切り替えます。
.terragrunt-version
プロジェクトで使用する Terragrunt バージョンを固定:
0.50.0
required_version
versions.tf でバージョン制約を設定:
terraform {
required_version = ">= 1.5.0, < 2.0.0"
}
バージョン管理ツールのインストール
tfenv
# macOS
brew install tfenv
# 手動インストール
git clone https://github.com/tfutils/tfenv.git ~/.tfenv
echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bashrc
tgswitch
# macOS
brew install warrensbox/tap/tgswitch
# 手動インストール
curl -L https://raw.githubusercontent.com/warrensbox/tgswitch/release/install.sh | bash
tenv(統合ツール)
# macOS
brew install tenv
# 手動インストール
curl -L https://tofuutils.github.io/tenv/install.sh | bash
注意事項
- ✅ バージョン管理ツールを使うとプロジェクトごとにバージョンを切り替えられる
- ✅
.terraform-versionでチームでバージョンを統一 - ✅
required_versionで最低バージョンを保証 - ⚠️ バージョンアップ時は互換性を確認