mcpField
T
terraform-aws

terraform-aws

github.com/bagelhole云与 DevOps1.2k389 次安装23 周前更新
代码仓库

关于 terraform-aws

面向 AWS 基础设施配置与管理的 Terraform 技能,提供 AWS Provider、常见资源和模块示例,并涵盖远程状态及多环境管理实践。

主要功能

  1. 01配置 AWS Terraform Provider
  2. 02定义 VPC 和 EC2 资源
  3. 03使用 VPC 模块
  4. 04运行 init、plan、apply 和 destroy
  5. 05管理远程状态与环境隔离

适用场景

  1. 01使用 Terraform 创建 AWS 网络和实例
  2. 02通过模块组织 VPC 配置
  3. 03按环境维护独立状态并应用变更

安装

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

$npx skills add https://github.com/bagelhole/devops-security-agent-skills --skill terraform-aws

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
vpc-module.tf
references/
best-practices.md
scripts/
tf-init.sh

详细介绍

Terraform AWS

使用 Terraform 配置和管理 AWS 基础设施。

提供商配置

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
  
  backend "s3" {
    bucket = "terraform-state"
    key    = "prod/terraform.tfstate"
    region = "us-east-1"
  }
}

provider "aws" {
  region = var.region
  
  default_tags {
    tags = {
      Environment = var.environment
      ManagedBy   = "terraform"
    }
  }
}

资源示例

resource "aws_vpc" "main" {
  cidr_block           = "10.0.0.0/16"
  enable_dns_hostnames = true
  
  tags = { Name = "main-vpc" }
}

resource "aws_instance" "web" {
  ami           = data.aws_ami.amazon_linux.id
  instance_type = "t3.micro"
  subnet_id     = aws_subnet.public.id
  
  tags = { Name = "web-server" }
}

模块

module "vpc" {
  source = "terraform-aws-modules/vpc/aws"
  
  name = "my-vpc"
  cidr = "10.0.0.0/16"
  
  azs             = ["us-east-1a", "us-east-1b"]
  private_subnets = ["10.0.1.0/24", "10.0.2.0/24"]
  public_subnets  = ["10.0.101.0/24", "10.0.102.0/24"]
  
  enable_nat_gateway = true
}

命令

terraform init
terraform plan -out=plan.tfplan
terraform apply plan.tfplan
terraform destroy

最佳实践

  • 使用带锁定功能的远程状态
  • 实施模块结构
  • 按环境使用工作区或单独的状态文件
  • 固定提供商版本
  • 使用数据源获取 AMI

相关技能

评论

支持 Markdown