mcpField
T
terraform-tasks

terraform-tasks

github.com/josiahsiegelクラウド・DevOps59151 回インストール19 週間前に更新
リポジトリ

terraform-tasks について

terraform-tasksは、Terraform利用者向けにインフラコードの生成・保守を支援するスキルです。複数のクラウドプロバイダーに対応し、アップグレード、トラブルシューティング、セキュリティ修正、検証も扱います。

主な機能

  1. 01Terraform設定とモジュールの生成
  2. 02Terraformとプロバイダーのアップグレード
  3. 03エラー診断と問題の調査
  4. 04セキュリティ問題の検出と修正
  5. 05アーキテクチャレビューとCI/CDパイプライン作成

活用シーン

  1. 01AWS、Azure、GCPのインフラ構築
  2. 02既存Terraform設定のアップグレード
  3. 03認証エラーや依存関係の循環の調査
  4. 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.md
azurerm-4.md
ephemeral-values.md
terraform-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 コードを生成します。

プロセス:

  1. ユーザーのコンテキストからプロバイダーとバージョンを特定します
  2. 必要に応じて最新のプロバイダードキュメントを調査します
  3. 以下を含む完全な設定を生成します。
    • プロバイダーのバージョン制約
    • リソース設定
    • バリデーション付き変数
    • 出力
    • セキュリティのベストプラクティス
    • プラットフォーム固有の考慮事項

タスクの例:

  • 「プライベートエンドポイントとカスタマー管理キーを備えた Azure Storage Account を作成する」
  • 「3 層アーキテクチャと NAT ゲートウェイを備えた AWS VPC を生成する」
  • 「Workload Identity とノードプールを備えた GCP GKE クラスターを構築する」
2. バージョン管理

Terraform とプロバイダーのバージョンアップグレードに対応します。

プロセス:

  1. 現在のバージョンを確認します
  2. 変更履歴と後方互換性のない変更を調査します
  3. アップグレード手順を提案します
  4. 移行コードを生成します
  5. テスト戦略を提示します

タスクの例:

  • 「AzureRM provider 2.x から 3.x にアップグレードする」
  • 「Terraform 0.12 のコードを 1.x に移行する」
  • 「すべてのプロバイダーを互換性のある最新バージョンに更新する」
3. デバッグとトラブルシューティング

Terraform の問題を診断して修正します。

プロセス:

  1. 診断情報を収集します
  2. エラーメッセージとログを分析します
  3. 根本原因を特定します
  4. プラットフォーム固有の解決策を提示します
  5. 再発防止策を提案します

タスクの例:

  • 「Windows での状態ロックのタイムアウトをデバッグする」
  • 「Azure DevOps パイプラインでのプロバイダー認証エラーを修正する」
  • 「モジュール構造の循環依存を解消する」
4. セキュリティスキャンと修正

セキュリティ上の問題をスキャンして修正します。

プロセス:

  1. セキュリティスキャナー(tfsec、Checkov)を実行します
  2. 検出結果を分析します
  3. 問題の優先順位を付けます
  4. 修正案を生成します
  5. セキュリティ上の影響を説明します

タスクの例:

  • 「tfsec を実行し、重大度が HIGH の問題をすべて修正する」
  • 「すべての S3 バケットで暗号化が有効になっていることを確認する」
  • 「すべてのセキュリティのベストプラクティスに従った Azure Storage Account を実装する」
5. アーキテクチャレビュー

Terraform のアーキテクチャをレビューして改善します。

プロセス:

  1. 現在の構成を分析します
  2. アンチパターンを特定します
  3. 改善案を提示します
  4. リファクタリング計画を作成します
  5. 決定事項をドキュメント化します(ADR)

タスクの例:

  • 「500 以上のリソースに対する状態管理戦略をレビューする」
  • 「高可用性を実現するマルチリージョンアーキテクチャを設計する」
  • 「モノリシックな状態を階層化されたアプローチにリファクタリングする」
6. CI/CD パイプラインの生成

CI/CD パイプラインを一式作成します。

プロセス:

  1. CI/CD プラットフォームを特定します
  2. 環境戦略を把握します
  3. パイプライン設定を生成します
  4. セキュリティスキャンを含めます
  5. 承認ゲートを追加します
  6. ドリフト検出を実装します

タスクの例:

  • 「マルチステージデプロイを備えた Azure DevOps パイプラインを作成する」
  • 「OIDC 認証を使用する GitHub Actions ワークフローを生成する」
  • 「Terraform Cloud バックエンドを使用する GitLab CI パイプラインを構築する」
7. モジュール開発

再利用可能な Terraform モジュールを作成します。

プロセス:

  1. モジュールのインターフェースを設計する
  2. ベストプラクティスに従って実装する
  3. 変数の検証を追加する
  4. ドキュメントを生成する
  5. サンプルを作成する
  6. テストを設定する

タスクの例:

  • 「ハブアンドスポークパターンを使用した Azure ネットワーキングモジュールを作成する」
  • 「自動スケーリングと ALB を備えた AWS ECS モジュールを構築する」
  • 「カスタムドメインを使用した GCP Cloud Run モジュールを開発する」
8. 移行タスク

インフラストラクチャを Terraform に移行します。

プロセス:

  1. 既存のリソースを棚卸しする
  2. インポートコマンドを生成する
  3. 対応する Terraform コードを作成する
  4. 設定を検証する
  5. インポートプロセスをテストする
  6. 切り替え戦略を策定する

タスクの例:

  • 「既存の Azure リソースを Terraform にインポートする」
  • 「CloudFormation から Terraform に移行する」
  • 「ARM テンプレートを Terraform HCL に変換する」

自律的な動作

このスキルは、ユーザーの介入を最小限に抑えて自律的に動作します。

情報収集
  • Terraform とプロバイダーのバージョンを自動的に検出する
  • プラットフォーム(Windows/Linux/macOS)を特定する
  • CI/CD 環境を検出する
  • 既存の設定を確認する
調査
  • WebSearch を使用して最新のドキュメントを見つける
  • プロバイダーの変更履歴を確認し、破壊的変更を調べる
  • ベストプラクティスを調査する
  • プラットフォーム固有のソリューションを見つける
コード生成
  • 完全で動作するコードを生成する
  • 必要なファイル一式(main.tf、variables.tf、outputs.tf など)を含める
  • 詳細なコメントを追加する
  • 命名規則に従う
  • セキュリティのベストプラクティスを適用する
検証
  • 生成したコードに対して terraform fmt を実行する
  • 構文を検証する
  • セキュリティ上の問題を確認する
  • 可能な場合は設定をテストする
ドキュメント
  • アーキテクチャ上の決定を説明する
  • 使用例を記載する
  • バージョンの互換性を明記する
  • トラブルシューティングのヒントを含める

エラー処理

問題が発生した場合:

  1. コンテキストの収集:関連する情報をすべて集めます
  2. 調査:エラーメッセージと解決策を調べます
  3. プラットフォームの考慮:OS 固有の問題を考慮します
  4. 複数の解決策:可能な場合は代替案を提示します
  5. 予防:同様の問題を避ける方法を提案します

プラットフォーム固有の考慮事項

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 を作成する」

スキルの動作:

  1. AzureRM プロバイダーのバージョンを検出する、またはユーザーに確認する
  2. 最新のセキュリティ要件を調査する
  3. 完全な設定を生成する:
    • セキュリティで保護された設定のストレージアカウント
    • プライベートエンドポイント
    • 診断設定
    • カスタマー管理の暗号化キー
    • ネットワークルール
    • 検証付きの変数
    • 出力
  4. 使用例を含める
  5. 適切な箇所に、説明を添えてセキュリティスキャナーの無視コメントを追加する
例 2:デバッグ計画の失敗

ユーザーのリクエスト:「Windows で Terraform の plan が認証エラーで失敗します」

スキルのアクション:

  1. エラーの詳細を尋ねます
  2. Azure CLI 認証が原因であることを特定します
  3. Windows 固有の解決策を提示します:
    • 認証を確認する PowerShell コマンド
    • 資格情報を更新する方法
    • 環境変数の設定
    • 代替の認証方法
  4. 根本原因を説明します
  5. 再発防止策を提案します
例 3:アーキテクチャレビュー

ユーザーのリクエスト:「Terraform の構成をレビューしてください。1 つの state ファイルに 1000 個以上のリソースがあります」

スキルのアクション:

  1. 現在の構成を分析します
  2. 問題点を特定します:
    • 大きな state ファイル
    • 遅い処理
    • 影響範囲が広い
  3. 階層型アーキテクチャを提案します:
    • foundation/platform/apps に分割します
    • state ファイルを分けます
    • リモート state のデータソースを使用します
  4. 移行計画を作成します
  5. 判断を記録する ADR を作成します
  6. 実装手順を提示します

terraform-expert エージェントとの連携

このスキルは terraform-expert エージェントと連携して機能します:

  • エージェントが戦略的なガイダンスを提供します
  • スキルが戦術的なタスクを実行します
  • エージェントがスキルの出力を検証します
  • スキルがエージェントに結果を報告します

包括的なプロバイダー知識とプラットフォームへの対応を踏まえて、Terraform のタスクを自律的に実行する必要がある場合は、このスキルを使用してください。

コメント