mcpField
I
infrastructure-terraform

infrastructure-terraform

github.com/laurigates云与 DevOps5961 次安装1 天前更新
代码仓库

关于 infrastructure-terraform

Infrastructure Terraform 是用于编写和操作 Terraform 基础设施即代码配置的技能,面向处理 HCL、状态、Provider 和模块的实践者,并涵盖计划、审查、应用流程及本地调试。

主要功能

  1. 01声明式 HCL 配置
  2. 02状态与远程后端管理
  3. 03Provider 和模块设计
  4. 04计划、审查、应用工作流
  5. 05状态调试与导入
  6. 06格式化和验证命令

适用场景

  1. 01设计可复用的 Terraform 模块
  2. 02应用变更前审查基础设施计划
  3. 03排查漂移或恢复 Terraform 状态
  4. 04验证并格式化 Terraform 配置

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/laurigates/claude-plugins --skill infrastructure-terraform

安装后在 Claude Code 中输入/infrastructure-terraform确认已加载。

附带文件REFERENCE.md

详细介绍

Infrastructure Terraform

使用 Terraform 进行基础设施即代码的专业知识,重点关注声明式 HCL、状态管理和弹性基础设施。

何时使用此技能

在以下情况下使用此技能……在以下情况下改用 tfc-* 同级技能……
在本地编写或修改 Terraform HCL 配置通过 API 检查 Terraform Cloud 运行状态(tfc-run-status)
针对后端运行 terraform init/plan/apply/destroy读取 TFC 计划/应用日志流(tfc-run-logs)
设计模块结构、提供程序或远程后端分析 TFC 运行生成的结构化计划 JSON(tfc-plan-json)
调试本地状态、漂移或导入工作流列出或筛选 TFC 运行历史(tfc-list-runs、tfc-workspace-runs)

核心专业知识

Terraform 与 IaC

  • 声明式基础设施:清晰、模块化且可复用的 HCL 代码
  • 状态管理:通过远程后端保护和管理 Terraform 状态
  • 提供程序与模块:利用社区和自定义提供程序/模块
  • 执行生命周期:掌握 plan -> review -> apply 工作流

基础设施配置流程

  1. 先制定计划:始终生成 terraform plan,并在变更前仔细审查
  2. 模块化:将基础设施拆分为可复用、可组合的模块
  3. 保护状态:使用带锁定功能的远程后端保护状态文件
  4. 参数化:使用变量和输出,让基础设施灵活且可配置
  5. 谨慎销毁:运行 terraform destroy 前仔细检查计划

必备命令

# Core workflow
terraform init                   # Initialize working directory
terraform plan                   # Generate execution plan
terraform apply                  # Apply changes
terraform destroy               # Destroy infrastructure

# State management
terraform state list            # List all resources
terraform state show <resource> # Show specific resource
terraform state pull > backup.tfstate  # Backup state

# Validation and formatting
terraform validate              # Validate configuration
terraform fmt -recursive        # Format all files recursively
terraform fmt path/to/dir       # Format specific directory
terraform graph | dot -Tsvg > graph.svg  # Dependency graph

# Working with directories (use -chdir to stay in repo root)
terraform -chdir=gcp fmt        # Format files in gcp/ directory
terraform -chdir=gcp validate   # Validate gcp/ configuration
terraform -chdir=gcp plan       # Plan from specific directory
terraform -chdir=modules/vpc init  # Init module directory

# Debugging
export TF_LOG=DEBUG             # Enable debug logging
terraform plan -out=tfplan      # Save plan for review
terraform show tfplan           # View saved plan

最佳实践

模块结构

module "vpc" {
  source  = "./modules/vpc"
  version = "1.0.0"

  vpc_cidr = var.vpc_cidr
  environment = var.environment
}

output "vpc_id" {
  value = module.vpc.vpc_id
}

变量配置

variable "environment" {
  description = "Environment name"
  type        = string
  validation {
    condition     = contains(["dev", "staging", "prod"], var.environment)
    error_message = "Environment must be dev, staging, or prod."
  }
}

远程状态后端

terraform {
  backend "s3" {
    bucket         = "my-terraform-state"
    key            = "prod/terraform.tfstate"
    region         = "us-east-1"
    encrypt        = true
    dynamodb_table = "terraform-locks"
  }
}

提供程序配置

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
  required_version = ">= 1.5"
}

关键调试技巧

状态调试

# State inspection
terraform state list
terraform state show aws_instance.web

# State recovery
terraform refresh
terraform plan -refresh-only
terraform import aws_instance.existing i-1234567890

错误解决

# Provider errors
terraform init -upgrade
terraform init -reconfigure

# Resource conflicts
terraform taint aws_instance.broken
terraform apply -target=aws_instance.web

Agent 优化

上下文命令
格式化目录terraform -chdir=path/to/dir fmt
检查格式(CI)terraform fmt -check -recursive
验证配置terraform -chdir=path/to/dir validate
精简计划terraform plan -compact-warnings
JSON 计划输出terraform plan -out=plan.tfplan && terraform show -json plan.tfplan
列出资源terraform state list

快速参考

标志描述
-chdir=DIR运行命令前切换到 DIR
-recursive递归处理目录
-check检查格式但不进行更改(CI)
-compact-warnings以精简形式显示警告
-json以 JSON 格式输出
-out=FILE将计划保存到文件
-target=RESOURCE指定目标资源
-refresh-only仅刷新状态,不进行更改

有关详细的调试模式、高级模块设计、CI/CD 集成和故障排除策略,请参阅 REFERENCE.md。

评论

支持 Markdown