1. Devops①
  2. Devops②
  3. Devops③
  4. Devops④
  5. Devops⑤
  6. Devops⑥
  7. Devops⑦
  8. Devops⑧
  9. Devops⑨

第 5 节 · 基础设施即代码(IaC)与 Terraform 入门

💡 什么是基础设施即代码(Infrastructure as Code, IaC)?

IaC = 用代码来定义和管理服务器、数据库、网络等基础设施。

它的目标是:

  • ✅ 自动化部署基础架构(不用手点控制台)
  • ✅ 保持环境一致性(dev/test/prod 都一样)
  • ✅ 支持版本控制、回滚(像代码一样被管理)

🧰 Terraform 是什么?

Terraform 是 HashiCorp 出品的开源工具,是目前最主流的 IaC 实现方式。

特点:

  • 🌍 多云平台支持(AWS、Azure、GCP、K8s…)
  • 🧱 声明式语法(你说“要什么”,它决定“怎么做”)
  • 💾 状态文件(State)记录当前资源状况

📦 Terraform 核心概念

概念 说明
Provider 云服务提供商(如 AWS)
Resource 要创建的资源(如 EC2、S3)
Module 可复用的资源配置模板
Variable 外部输入变量,提升灵活性
State File 当前资源的实际状态记录

🧪 示例:创建一个 AWS EC2 实例

provider "aws" {
region = "ap-southeast-2"
}

resource "aws_instance" "my_ec2" {
ami = "ami-0abc123456789xyz"
instance_type = "t2.micro"
tags = {
Name = "devops-demo"
}
}

运行步骤:

terraform init      # 初始化项目(安装 provider)
terraform plan # 预览资源更改计划
terraform apply # 应用资源变更,创建 EC2 实例

⚠️ Terraform 工作机制简介


✅ Terraform 的优势

特点 说明
自动化 一键部署复杂云资源结构
可重复 可以复用在不同环境(dev/test/prod)
可回滚 配合 Git,支持历史版本回退
可扩展 支持写 Module,封装常用架构逻辑

🔐 与 DevOps 的结合点

  • CI/CD 阶段:部署流程中使用 terraform apply 自动化基础设施搭建
  • GitOps 实践:用 Git 管理 IaC 配置文件,配合 PR 审核
  • 安全合规:配合 terraform validatetflint 做语法检查与规范验证

下一节预告 👉 第 6 节:Ansible 与 Packer —— 配置管理与镜像构建实战