基础设施即代码实战指南
从手动 SSH 到代码化运维——Ansible、Terraform、Kubernetes 三件套让你的基础设施像代码一样可版本化、可重复、可审查。
这本书写给:已经掌握 Linux 服务器和 Docker 基础(DevOps 实战指南),想把运维方式从"手动登录服务器"升级为"提交 PR、自动部署"的工程师。
全景学习路径
graph LR
A[IaC 全景定位] --> B[Ansible 基础]
B --> C[Ansible 实战]
C --> D[Terraform 基础]
D --> E[Terraform 实战]
E --> F[Kubernetes 基础]
F --> G[Kubernetes 实战]
G --> H[Helm 包管理]
H --> I[GitOps + ArgoCD]
I --> J[可观测性]
J --> K[多环境多集群]
K --> L[IaC 安全合规]
style A fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style L fill:#c8e6c9,stroke:#388e3c,stroke-width:2px
三工具协作关系
graph TB
TF[Terraform
声明式创建云资源
VPC / EC2 / RDS / S3] AN[Ansible
幂等配置服务器软件
Nginx / App / 证书] K8[Kubernetes
容器编排运行应用
Pod / Service / HPA] TF -->|建好基础设施| AN AN -->|装好运行环境| K8 K8 -->|运行应用| APP[生产应用] style TF fill:#fff3e0,stroke:#e65100 style AN fill:#e8f5e9,stroke:#2e7d32 style K8 fill:#e3f2fd,stroke:#1565c0
声明式创建云资源
VPC / EC2 / RDS / S3] AN[Ansible
幂等配置服务器软件
Nginx / App / 证书] K8[Kubernetes
容器编排运行应用
Pod / Service / HPA] TF -->|建好基础设施| AN AN -->|装好运行环境| K8 K8 -->|运行应用| APP[生产应用] style TF fill:#fff3e0,stroke:#e65100 style AN fill:#e8f5e9,stroke:#2e7d32 style K8 fill:#e3f2fd,stroke:#1565c0
目录
第一章:IaC 全景与工具定位
- 三工具定位与协作关系 — Ansible / Terraform / Kubernetes 各解决什么问题
- 典型工作流:从零到生产 — Terraform 建环境 → Ansible 配软件 → Kubernetes 跑应用
- 工具选型决策树 — 什么场景用什么工具,怎么组合
第二章:Ansible 基础
- Inventory 与 Ad-hoc 命令 — 管理主机列表,快速执行单次任务
- Playbook 结构与常用模块 — apt / copy / template / service / file 模块实战
- 变量、条件与循环 — vars / when / loop 让 Playbook 动态灵活
第三章:Ansible 实战
- Role 目录结构与 Ansible Galaxy — 把 Playbook 组织成可复用角色库
- Jinja2 模板实战 — 动态生成配置文件,告别硬编码
- 多环境管理与 Vault 加密 — group_vars 隔离环境,ansible-vault 保护密钥
第四章:Terraform 基础
- HCL 语法与 Provider 配置 — 声明式资源描述,AWS / GCP / Azure Provider
- Resource 与 Data Sources — 创建资源、引用已有资源,变量与输出
- State 文件与远程 Backend — S3 + DynamoDB 远程状态,State Lock 原理
第五章:Terraform 实战
- Module 设计与复用 — 模块化拆分,跨项目共享基础设施模板
- Workspace 与多账号管理 — dev / staging / prod 环境隔离策略
- terraform plan 审查与 CI 集成 — PR 自动 plan,Atlantis / GitHub Actions 集成
第六章:Kubernetes 基础
- Pod 生命周期与探针 — 容器状态机、liveness / readiness / startup 探针
- Deployment、StatefulSet 与 DaemonSet — 无状态 / 有状态 / 节点级应用的部署策略
- Service 类型与网络访问 — ClusterIP / NodePort / LoadBalancer / Ingress
第七章:Kubernetes 实战
- ConfigMap 与 Secret 管理 — 配置与密钥解耦,External Secrets Operator
- PersistentVolume 与存储类 — PVC 动态供给,StorageClass 选型
- HPA 水平自动扩缩容 — 基于 CPU / 自定义指标的弹性扩缩容
第八章:Helm 应用包管理
- Helm Chart 结构与模板语法 — values.yaml / templates / helpers 完整解析
- 安装、升级与回滚 — helm install / upgrade / rollback 操作全流程
- 自定义 Chart 开发 — 从零打包你的应用,发布到私有 Chart 仓库
第九章:GitOps 与 ArgoCD
- GitOps 核心理念与优势 — 声明式、版本化、自动同步——Git 是唯一真相来源
- ArgoCD 安装与 Application 配置 — 安装 ArgoCD、连接 Git 仓库、同步策略配置
- 多集群 GitOps 策略 — App of Apps 模式,多集群统一管理
第十章:可观测性——Prometheus、Grafana 与告警
- kube-prometheus-stack 部署 — Helm 一键部署完整监控栈
- PromQL 基础查询 — 指标类型、标签过滤、聚合函数、常用查询模板
- Grafana 仪表板与 AlertManager 规则 — Dashboard as Code,告警路由与静默
第十一章:多环境与多集群管理
- 命名空间隔离与 RBAC — Namespace / Role / RoleBinding / NetworkPolicy
- 多集群工具与架构选型 — Cluster API / Rancher / vCluster 对比
- 环境提升流水线设计 — dev → staging → prod 的镜像晋级与配置管理
第十二章:IaC 安全、合规与代码审查
- Checkov 与 tfsec 静态扫描 — Terraform / Kubernetes YAML 安全基线扫描
- OPA 与 Gatekeeper 策略执行 — 准入控制器,强制执行集群策略
- 变更审批与 PR Review 流程 — Atlantis / CODEOWNERS / 四眼审批,IaC 变更治理
适合谁读
- 已经掌握 Linux + Docker,想进阶 IaC 和容器编排的运维工程师
- 需要管理多台服务器或多个云账号的后端开发者
- 想把 CI/CD 延伸到基础设施层的平台工程师
- 准备 CKA(Kubernetes 管理员认证)的学习者
先修要求
- 能独立操作 Linux 服务器(
devops-guide第 01–05 章) - 了解 Docker 基本操作:
docker run、docker-compose up(devops-guide第 12 章) - 有至少一个云平台(AWS / GCP / Azure)的账号
从这里开始:三工具定位与协作关系