infra-cli の仕組み
infra-cli は、Terraform コードを直接書かず、パラメータと環境変数から自動生成する仕組みです。これにより、設定ミスやコード重複を防ぎ、ベストプラクティスの適用を容易にします。
🏗️ アーキテクチャの 3 層構造
毎回生成の利点
Terraform コードは 毎回 config.toml と環境変数から生成 されます。設定ファイルが Single Source of Truth となり、手動編集が不要です。
1️⃣ 設定層:開発者が定義するもの
開発者は以下の 2 種類のファイルだけを管理します:
config.toml- インフラ構成パラメータ(アーキテクチャ、リソースサイズ、コンポーネントなど).env.*.{dev,prd}- 環境変数(API キー、データベース接続情報など、暗号化して Git 管理)
詳細は 設定ガイド を参照。
2️⃣ 生成層:完全自動化
infra planやinfra applyコマンドを実行すると、infra-cli が以下を自動的に行います:
- 設定の読み込み -
config.tomlからインフラ構成を解析、暗号化された環境変数ファイルを復号化 - Terraform コードの生成 - テンプレートエンジンが設定に基づいて
.tfファイルを生成(MySQL、Redis、Storage などのモジュールを自動組み込み) - 環境変数の変換 -
.envファイルを Container Apps のenvブロック形式に変換、シークレットは Azure Key Vault 参照に自動変換
3️⃣ 実行層:Terraform による Azure リソース構築
生成された Terraform コードを使って、Container Apps、MySQL、Redis、Storage、Virtual Network、Key Vault などの Azure リソースが構築されます。
💻 基本的な使い方
テナントの初期化
# 対話式でテナントを作成
infra init my-company
# 非対話式(AI Agent向け)
infra init my-company \
--template monolith \
--environments dev,prd \
--location japaneast \
--non-interactive
Terraform ファイルの生成
# 設定を読み込んでTerraformファイルを生成
infra generate my-company dev
インフラのデプロイ
# 変更内容を確認
infra plan my-company dev
# デプロイ実行
infra apply my-company dev
# 自動承認(CI/CD用)
infra apply my-company dev --auto-approve
環境変数の管理
# 環境変数の復号化
infra decrypt my-company
# 暗号化(編集後)
infra encrypt my-company
CI/CD パイプラインのセットアップ
# GitHub Actionsワークフローを配布
infra rollout-ci GenerativeX/my-company-repo
テナント情報の確認
# テナント一覧
infra tenant list
# テナント詳細
infra tenant show my-company
🚀 次のステップ
infra-cli の使い方を理解したら、実際に環境をセットアップしてみましょう:
- インストール - 必要なツールのインストール
- ネットワーク構成図 - 作成されるインフラの詳細
- テナント登録 - 環境セットアップと初回テナント作成
- CLI コマンドリファレンス - 全コマンドの詳細
- 設定ガイド - config.toml の詳細な設定方法
💡 ヒント: 既存の Azure Resource Group から設定をインポートしたい場合は、マイグレーションガイド を参照してください。