mcpField
T
terraform

terraform

github.com/rightnow-aiクラウド・DevOps18.2k115 回インストール24 週間前に更新
リポジトリ

terraform について

Infrastructure as Code の管理、ステート、再利用可能なモジュールを扱う Terraform と OpenTofu のスキルです。安全な計画と適用、環境分離、IaC のレビュー手順を支援します。

主な機能

  1. 01Terraform と OpenTofu の計画・適用
  2. 02再利用可能なモジュール設計
  3. 03ステートの確認と移行
  4. 04リモートステートと環境分離
  5. 05フォーマットと検証の実践

活用シーン

  1. 01適用前のインフラ変更計画
  2. 02再利用可能なインフラモジュールの設計
  3. 03管理対象リソースのインポートやリファクタリング
  4. 04環境ごとのステート分離

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rightnow-ai/openfang --skill terraform

インストール後、Claude Code で/terraformを入力して読み込まれたか確認します。

詳細

Terraform IaC エキスパート

Terraform のスペシャリストです。Terraform と OpenTofu を使用したインフラストラクチャのコード化の記述、計画、適用、状態の安全な管理、再利用可能なモジュールの設計、IaC のベストプラクティスに沿った運用を支援します。

主な原則

  • terraform apply の前には、必ず terraform plan を実行してください。予期しない変更がないか、プランの出力を注意深く確認してください。
  • 状態のロック機能があるリモート状態バックエンド(S3 + DynamoDB、Terraform Cloud、GCS)を使用してください。共有インフラストラクチャにローカル状態を使用しないでください。
  • 破壊的変更を防ぐため、プロバイダのバージョンと Terraform 自体のバージョンを固定してください。required_providers でバージョン制約を指定します。
  • インフラストラクチャのコードはアプリケーションコードと同様に扱ってください。バージョン管理、コードレビュー、CI/CD パイプラインを利用します。

モジュール設計

  • 明確な入力変数、出力値、ドキュメントを備えた再利用可能なモジュールを作成してください。
  • モジュールは単一の関心事に特化させてください(例:ネットワーキング用とコンピューティング用にそれぞれモジュールを作成します)。
  • すべての入力に対して、type、description、default(または validation)を含む variable ブロックを使用してください。
  • 他のモジュールやルート設定で必要な値を公開するには、output ブロックを使用してください。
  • 共有モジュールはプライベートレジストリに公開するか、Git タグを使って参照してください。

状態管理

  • 状態を変更せずに確認するには、terraform state list と terraform state show を使用してください。
  • 既存のリソースを Terraform の管理下に置くには、terraform import を使用してください。
  • リソースを破棄して再作成せずにアドレスをリファクタリングするには、terraform state mv を使用してください。
  • 保存時の状態データの暗号化を有効にしてください。状態ファイルには機密データが含まれるため、アクセスを制限してください。
  • 環境を分離するには、ワークスペースまたは環境ごとに個別の状態ファイルを使用してください(dev、staging、production)。

ベストプラクティス

  • 繰り返しを減らし、読みやすさを向上させるには、locals を使用してください。
  • 変更時も安定した識別性が必要なリソースには、count より for_each を使用してください。
  • すべてのリソースに environment、project、owner、managed_by = "terraform" のタグを付けてください。
  • ID をハードコードするのではなく、既存のインフラストラクチャを参照するには data ソースを使用してください。
  • マージ前に CI で terraform fmt と terraform validate を実行してください。

避けるべき落とし穴

  • 明示的な確認を得て、プランをレビューするまでは、本番環境で terraform destroy を実行しないでください。
  • .tf ファイルにシークレットをハードコードしないでください。環境変数、vault、または sensitive 変数を使用してください。
  • 循環するモジュール依存関係を避け、明確な依存関係の階層を設計してください。
  • プランのドリフトを無視しないでください。手動変更を検出するため、定期的に terraform plan を実行してください。

コメント