关于 terraform-aws
面向 AWS 基础设施配置与管理的 Terraform 技能,提供 AWS Provider、常见资源和模块示例,并涵盖远程状态及多环境管理实践。
主要功能
- 01配置 AWS Terraform Provider
- 02定义 VPC 和 EC2 资源
- 03使用 VPC 模块
- 04运行 init、plan、apply 和 destroy
- 05管理远程状态与环境隔离
适用场景
- 01使用 Terraform 创建 AWS 网络和实例
- 02通过模块组织 VPC 配置
- 03按环境维护独立状态并应用变更
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ bagelhole/ devops-security-agent-skills --skill terraform-aws安装后在 Claude Code 中输入/terraform-aws确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/vpc-module.tfreferences/best-practices.mdscripts/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