Terraform基础

HCL 基础

# terraform.tf — 提供商和后端配置 terraform { required_version = ">= 1.5.0" required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0" } } backend "s3" { bucket = "my-terraform-state" key = "prod/terraform.tfstate" region = "us-east-1" } } provider "aws" { region = var.aws_region }

资源与变量

# variables.tf variable "aws_region" { type = string description = "AWS 区域" default = "us-east-1" } # main.tf resource "aws_vpc" "main" { cidr_block = "10.0.0.0/16" enable_dns_hostnames = true tags = { Name = "main-vpc" Environment = var.environment } } resource "aws_subnet" "public" { count = 2 vpc_id = aws_vpc.main.id cidr_block = cidrsubnet("10.0.0.0/16", 8, count.index) availability_zone = data.aws_availability_zones.available.names[count.index] } # outputs.tf output "vpc_id" { description = "VPC ID" value = aws_vpc.main.id }

常用 CLI 命令

# 初始化工作目录 terraform init # 格式化代码 terraform fmt -recursive # 验证配置 terraform validate # 预览变更 terraform plan terraform plan -out=tfplan # 应用变更 terraform apply terraform apply tfplan terraform apply -auto-approve # 销毁资源 terraform destroy terraform destroy -target=aws_instance.web # 状态管理 terraform state list terraform state show aws_vpc.main terraform import aws_s3_bucket.existing my-bucket-name