terraform-tasks について
terraform-tasksは、Terraform利用者向けにインフラコードの生成・保守を支援するスキルです。複数のクラウドプロバイダーに対応し、アップグレード、トラブルシューティング、セキュリティ修正、検証も扱います。
主な機能
- 01Terraform設定とモジュールの生成
- 02Terraformとプロバイダーのアップグレード
- 03エラー診断と問題の調査
- 04セキュリティ問題の検出と修正
- 05アーキテクチャレビューとCI/CDパイプライン作成
活用シーン
- 01AWS、Azure、GCPのインフラ構築
- 02既存Terraform設定のアップグレード
- 03認証エラーや依存関係の循環の調査
- 04既存リソースの移行や大規模stateの分割
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ josiahsiegel/ claude-plugin-marketplace --skill terraform-tasksインストール後、Claude Code で/terraform-tasksを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/aws-provider-6.mdazurerm-4.mdephemeral-values.mdterraform-stacks.md詳細
Terraform タスクスキル
🚨 重要なガイドライン
Windows のファイルパス要件
必須:Windows ではファイルパスに常にバックスラッシュを使用してください
Windows で Edit または Write ツールを使用する場合、ファイルパスにはスラッシュ(/)ではなく、必ずバックスラッシュ(\)を使用してください。
例:
- ❌ 誤り:
D:/repos/project/file.tsx - ✅ 正しい:
D:\repos\project\file.tsx
これは以下に適用されます。
- Edit ツールの file_path パラメーター
- Write ツールの file_path パラメーター
- Windows システムでのすべてのファイル操作
ドキュメント作成のガイドライン
ユーザーから明示的に依頼されない限り、新しいドキュメントファイルを作成しないでください。
- 優先事項:新しいドキュメントを作成するのではなく、既存の README.md ファイルを更新してください
- リポジトリを整理された状態に保つ:ユーザーから別途依頼されない限り、リポジトリのルートには README.md のみを置いてください
- スタイル:ドキュメントは簡潔、明確、かつプロフェッショナルにしてください。AI が生成したような文体は避けてください
- ユーザーの希望:ユーザーからドキュメント作成を明示的に依頼された場合に限り、追加の .md ファイルを作成してください
このスキルを使用すると、Terraform に関する幅広いプロバイダー知識とプラットフォームへの配慮に基づいて、複雑なタスクを自律的に実行できます。
機能
1. インフラストラクチャコードの生成
あらゆるクラウドプロバイダー向けに、本番環境ですぐに使える Terraform コードを生成します。
プロセス:
- ユーザーのコンテキストからプロバイダーとバージョンを特定します
- 必要に応じて最新のプロバイダードキュメントを調査します
- 以下を含む完全な設定を生成します。
- プロバイダーのバージョン制約
- リソース設定
- バリデーション付き変数
- 出力
- セキュリティのベストプラクティス
- プラットフォーム固有の考慮事項
タスクの例:
- 「プライベートエンドポイントとカスタマー管理キーを備えた Azure Storage Account を作成する」
- 「3 層アーキテクチャと NAT ゲートウェイを備えた AWS VPC を生成する」
- 「Workload Identity とノードプールを備えた GCP GKE クラスターを構築する」
2. バージョン管理
Terraform とプロバイダーのバージョンアップグレードに対応します。
プロセス:
- 現在のバージョンを確認します
- 変更履歴と後方互換性のない変更を調査します
- アップグレード手順を提案します
- 移行コードを生成します
- テスト戦略を提示します
タスクの例:
- 「AzureRM provider 2.x から 3.x にアップグレードする」
- 「Terraform 0.12 のコードを 1.x に移行する」
- 「すべてのプロバイダーを互換性のある最新バージョンに更新する」
3. デバッグとトラブルシューティング
Terraform の問題を診断して修正します。
プロセス:
- 診断情報を収集します
- エラーメッセージとログを分析します
- 根本原因を特定します
- プラットフォーム固有の解決策を提示します
- 再発防止策を提案します
タスクの例:
- 「Windows での状態ロックのタイムアウトをデバッグする」
- 「Azure DevOps パイプラインでのプロバイダー認証エラーを修正する」
- 「モジュール構造の循環依存を解消する」
4. セキュリティスキャンと修正
セキュリティ上の問題をスキャンして修正します。
プロセス:
- セキュリティスキャナー(tfsec、Checkov)を実行します
- 検出結果を分析します
- 問題の優先順位を付けます
- 修正案を生成します
- セキュリティ上の影響を説明します
タスクの例:
- 「tfsec を実行し、重大度が HIGH の問題をすべて修正する」
- 「すべての S3 バケットで暗号化が有効になっていることを確認する」
- 「すべてのセキュリティのベストプラクティスに従った Azure Storage Account を実装する」
5. アーキテクチャレビュー
Terraform のアーキテクチャをレビューして改善します。
プロセス:
- 現在の構成を分析します
- アンチパターンを特定します
- 改善案を提示します
- リファクタリング計画を作成します
- 決定事項をドキュメント化します(ADR)
タスクの例:
- 「500 以上のリソースに対する状態管理戦略をレビューする」
- 「高可用性を実現するマルチリージョンアーキテクチャを設計する」
- 「モノリシックな状態を階層化されたアプローチにリファクタリングする」
6. CI/CD パイプラインの生成
CI/CD パイプラインを一式作成します。
プロセス:
- CI/CD プラットフォームを特定します
- 環境戦略を把握します
- パイプライン設定を生成します
- セキュリティスキャンを含めます
- 承認ゲートを追加します
- ドリフト検出を実装します
タスクの例:
- 「マルチステージデプロイを備えた Azure DevOps パイプラインを作成する」
- 「OIDC 認証を使用する GitHub Actions ワークフローを生成する」
- 「Terraform Cloud バックエンドを使用する GitLab CI パイプラインを構築する」
7. モジュール開発
再利用可能な Terraform モジュールを作成します。
プロセス:
- モジュールのインターフェースを設計する
- ベストプラクティスに従って実装する
- 変数の検証を追加する
- ドキュメントを生成する
- サンプルを作成する
- テストを設定する
タスクの例:
- 「ハブアンドスポークパターンを使用した Azure ネットワーキングモジュールを作成する」
- 「自動スケーリングと ALB を備えた AWS ECS モジュールを構築する」
- 「カスタムドメインを使用した GCP Cloud Run モジュールを開発する」
8. 移行タスク
インフラストラクチャを Terraform に移行します。
プロセス:
- 既存のリソースを棚卸しする
- インポートコマンドを生成する
- 対応する Terraform コードを作成する
- 設定を検証する
- インポートプロセスをテストする
- 切り替え戦略を策定する
タスクの例:
- 「既存の Azure リソースを Terraform にインポートする」
- 「CloudFormation から Terraform に移行する」
- 「ARM テンプレートを Terraform HCL に変換する」
自律的な動作
このスキルは、ユーザーの介入を最小限に抑えて自律的に動作します。
情報収集
- Terraform とプロバイダーのバージョンを自動的に検出する
- プラットフォーム(Windows/Linux/macOS)を特定する
- CI/CD 環境を検出する
- 既存の設定を確認する
調査
- WebSearch を使用して最新のドキュメントを見つける
- プロバイダーの変更履歴を確認し、破壊的変更を調べる
- ベストプラクティスを調査する
- プラットフォーム固有のソリューションを見つける
コード生成
- 完全で動作するコードを生成する
- 必要なファイル一式(main.tf、variables.tf、outputs.tf など)を含める
- 詳細なコメントを追加する
- 命名規則に従う
- セキュリティのベストプラクティスを適用する
検証
- 生成したコードに対して terraform fmt を実行する
- 構文を検証する
- セキュリティ上の問題を確認する
- 可能な場合は設定をテストする
ドキュメント
- アーキテクチャ上の決定を説明する
- 使用例を記載する
- バージョンの互換性を明記する
- トラブルシューティングのヒントを含める
エラー処理
問題が発生した場合:
- コンテキストの収集:関連する情報をすべて集めます
- 調査:エラーメッセージと解決策を調べます
- プラットフォームの考慮:OS 固有の問題を考慮します
- 複数の解決策:可能な場合は代替案を提示します
- 予防:同様の問題を避ける方法を提案します
プラットフォーム固有の考慮事項
Windows
- コマンドには PowerShell の構文を使用する
- パスの処理(バックスラッシュ)
- 改行コードに関する考慮事項
- 実行ポリシーの問題
- 認証情報の管理
Linux/macOS
- コマンドには Bash の構文を使用する
- ファイルのアクセス許可
- パッケージマネージャー
- 環境変数
CI/CD 環境
- パイプライン固有の構文
- エージェントの機能
- 認証方法
- アーティファクトの処理
品質基準
生成するすべての Terraform コードは、以下の要件を満たす必要があります。
- 適切にフォーマットされている(terraform fmt)
- 検証に合格する(terraform validate)
- セキュリティのベストプラクティスを含む
- 変数の詳細な検証を備えている
- 意味のある説明を含む
- 命名規則に従っている
- バージョンとの互換性がある
- 使用例を含む
- 出力が適切に定義されている
プロバイダーに関する知識
Azure(AzureRM)
- すべてのリソースタイプ
- プレビュー機能向けの AzAPI
- サービスエンドポイントとプライベートエンドポイント
- マネージド ID
- RBAC とポリシー
AWS
- すべてのサービス
- IAM ロールとポリシー
- VPC ネットワーキング
- S3 バックエンドの設定
- クロスアカウントデプロイ
Google Cloud
- すべての GCP サービス
- IAM とサービスアカウント
- VPC とネットワーキング
- GCS バックエンドの設定
- 組織とフォルダーのポリシー
コミュニティプロバイダー
- Kubernetes と Helm
- Datadog、PagerDuty
- GitHub、GitLab
- HashiCorp Vault
- その他多数……
例
例 1:Azure Storage Account の生成
ユーザーのリクエスト:「セキュリティのベストプラクティスをすべて適用した Azure Storage Account を作成する」
スキルの動作:
- AzureRM プロバイダーのバージョンを検出する、またはユーザーに確認する
- 最新のセキュリティ要件を調査する
- 完全な設定を生成する:
- セキュリティで保護された設定のストレージアカウント
- プライベートエンドポイント
- 診断設定
- カスタマー管理の暗号化キー
- ネットワークルール
- 検証付きの変数
- 出力
- 使用例を含める
- 適切な箇所に、説明を添えてセキュリティスキャナーの無視コメントを追加する
例 2:デバッグ計画の失敗
ユーザーのリクエスト:「Windows で Terraform の plan が認証エラーで失敗します」
スキルのアクション:
- エラーの詳細を尋ねます
- Azure CLI 認証が原因であることを特定します
- Windows 固有の解決策を提示します:
- 認証を確認する PowerShell コマンド
- 資格情報を更新する方法
- 環境変数の設定
- 代替の認証方法
- 根本原因を説明します
- 再発防止策を提案します
例 3:アーキテクチャレビュー
ユーザーのリクエスト:「Terraform の構成をレビューしてください。1 つの state ファイルに 1000 個以上のリソースがあります」
スキルのアクション:
- 現在の構成を分析します
- 問題点を特定します:
- 大きな state ファイル
- 遅い処理
- 影響範囲が広い
- 階層型アーキテクチャを提案します:
- foundation/platform/apps に分割します
- state ファイルを分けます
- リモート state のデータソースを使用します
- 移行計画を作成します
- 判断を記録する ADR を作成します
- 実装手順を提示します
terraform-expert エージェントとの連携
このスキルは terraform-expert エージェントと連携して機能します:
- エージェントが戦略的なガイダンスを提供します
- スキルが戦術的なタスクを実行します
- エージェントがスキルの出力を検証します
- スキルがエージェントに結果を報告します
包括的なプロバイダー知識とプラットフォームへの対応を踏まえて、Terraform のタスクを自律的に実行する必要がある場合は、このスキルを使用してください。