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" { |
运行步骤:
terraform init # 初始化项目(安装 provider) |
⚠️ Terraform 工作机制简介
✅ Terraform 的优势
特点 | 说明 |
---|---|
自动化 | 一键部署复杂云资源结构 |
可重复 | 可以复用在不同环境(dev/test/prod) |
可回滚 | 配合 Git,支持历史版本回退 |
可扩展 | 支持写 Module,封装常用架构逻辑 |
🔐 与 DevOps 的结合点
- CI/CD 阶段:部署流程中使用
terraform apply
自动化基础设施搭建 - GitOps 实践:用 Git 管理 IaC 配置文件,配合 PR 审核
- 安全合规:配合
terraform validate
、tflint
做语法检查与规范验证
下一节预告 👉 第 6 节:Ansible 与 Packer —— 配置管理与镜像构建实战
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Xiaotan's Blog!
评论