运维
运维相关知识和内容
Terraform IaC实战:多云基础设施自动化管理
一、Terraform概述
1.1 什么是IaC
Infrastructure as Code:用代码管理基础设施
优势:
- 版本控制
- 可重复
- 可测试
- 自动化
1.2 Terraform vs 其他工具
| 工具 | 厂商 | 语言 | 状态 |
|---|---|---|---|
| Terraform | HashiCorp | HCL | 跨云 |
| CloudFormation | AWS | JSON/YAML | AWS |
| ARM | Azure | JSON | Azure |
二、核心概念
2.1 基础结构
main.tf # 主配置 variables.tf # 变量定义 outputs.tf # 输出定义 terraform.tfvars # 变量值
2.2 基础配置
terraform {
required_version = ">= 1.0"
backend "s3" {
bucket = "my-terraform-state"
key = "prod/terraform.tfstate"
region = "us-east-1"
}
}
provider "aws" {
region = var.aws_region
}三、模块化设计
3.1 VPC模块
resource "aws_vpc" "main" {
cidr_block = var.vpc_cidr
enable_dns_hostnames = true
tags = {
Name = "${var.project}-${var.environment}-vpc"
}
}四、CI/CD集成
4.1 GitHub Actions
- name: Terraform Init run: terraform init - name: Terraform Plan run: terraform plan -no-color - name: Terraform Apply if: github.ref == 'refs/heads/main' run: terraform apply -auto-approve
五、总结
Terraform IaC要点:
1. 后端:远程状态+锁
2. 模块化:复用和简化
3. 变量:类型校验+默认值
4. CI/CD:自动化部署