运维

运维相关知识和内容

Terraform IaC实战:多云基础设施自动化管理

一、Terraform概述

1.1 什么是IaC

Infrastructure as Code:用代码管理基础设施

优势
- 版本控制
- 可重复
- 可测试
- 自动化

1.2 Terraform vs 其他工具

工具厂商语言状态
TerraformHashiCorpHCL跨云
CloudFormationAWSJSON/YAMLAWS
ARMAzureJSONAzure

二、核心概念

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:自动化部署