1. 课程导论:什么是自动化Runbook,为什么需要联动GitLab CI,课程目标与前置知识
1.1 什么是自动化Runbook
自动化Runbook是一套可编程、可重复执行的操作手册,它将传统运维人员手动执行的故障恢复、变更部署、安全巡检等流程,转化为由代码或脚本驱动的自动化工作流。与静态的Word/Confluence文档不同,自动化Runbook具备以下核心特征:
- 可执行性:Runbook可以直接在自动化引擎(如Ansible、AWX、Rundeck、GitLab CI)中触发,无需人工逐条阅读指令。
- 版本化:Runbook的每一次变更都记录在Git仓库中,支持回滚、审计和协作评审。
- 可观测性:执行过程中的日志、状态码、输出结果被自动采集,便于事后分析和告警。
- 安全嵌入:Runbook在执行时动态获取临时凭证,避免硬编码密钥,并遵循最小权限原则。
关键认知: 自动化Runbook不是“把文档里的步骤写成脚本”,而是将运维知识、安全策略和CI/CD管道深度融合,形成“策略即代码”的闭环。
1.2 为什么需要联动GitLab CI
GitLab CI不仅是持续集成/持续部署工具,它本身就是一个强大的自动化Runbook引擎。将Runbook与GitLab CI联动,可以解决传统运维中的三大痛点:
| 痛点 | 传统方式 | 联动GitLab CI后的改进 |
|---|---|---|
| 权限碎片化 | 运维人员手动登录服务器,使用共享root密码或长期SSH密钥 | 通过GitLab CI Job + Vault动态获取临时凭证,执行后自动吊销 |
| 流程不可追溯 | 操作记录依赖人工日志,难以审计 | 每次Runbook执行都对应一个Pipeline Job,完整记录环境变量、执行日志和产物 |
| 安全策略滞后 | 安全规则写在Wiki里,靠人自觉遵守 | 安全扫描、密钥检测、合规检查作为Runbook前置Stage,不通过则阻断执行 |
联动GitLab CI后,Runbook的触发方式也变得更加灵活:
- 事件驱动:当Git仓库发生特定变更(如Tag推送、MR合并)时自动触发Runbook。
- 手动触发:运维人员通过GitLab UI或API手动启动Runbook,并传入参数。
- 定时执行:通过Pipeline Schedule实现每日/每周的安全巡检Runbook。
1.3 课程目标
完成本课程后,学员将具备以下能力:
- 设计安全Runbook结构:掌握如何在GitLab仓库中组织Runbook目录,区分公共Runbook、环境专属Runbook和敏感操作Runbook。
- 配置最小权限CI Job:熟练使用
CI_JOB_、id_tokens、Vault集成和自定义角色,确保每个Runbook Job只拥有执行所需的最小权限。 - 实现安全扫描前置:在Runbook执行前自动集成SAST、密钥检测(
gitleaks/trufflehog)和合规策略检查,不符合条件则阻断管道。 - 构建审计与追溯体系:利用GitLab的审计日志、Pipeline报告和制品归档,实现Runbook执行全链路可追溯。
- 实战落地:通过至少3个真实场景(数据库密码轮换、K8s故障自愈、安全基线巡检)完成从Runbook编写到CI管道配置的完整闭环。
1.4 前置知识
为了确保学习效果,建议学员具备以下基础:
| 知识领域 | 具体要求 | 推荐学习资源 |
|---|---|---|
| GitLab CI 基础 | 理解.gitlab-ci.yml基本结构、Job/Stage/Runner概念 |
GitLab官方CI快速入门 |
| Shell / Python 脚本 | 能编写简单的自动化脚本,理解变量、条件判断、错误处理 | 《Linux命令行与Shell脚本编程大全》 |
| 容器基础 | 了解Docker镜像构建、容器运行、docker exec基本操作 |
Docker官方文档 |
| 安全基础概念 | 了解最小权限原则、临时凭证、密钥管理的基本思想 | OWASP Top 10 / 零信任安全模型 |
学习建议: 如果你对GitLab CI还不太熟悉,建议先花2小时完成GitLab官方“CI/CD Quick Start”教程。本课程会从基础概念讲起,但不会重复解释
before_script和artifacts等基础语法。
1.5 课程内容概览
本课程共分为6个模块,30个章节,从基础概念到高级实战逐步深入:
- 模块一(第1-5章):自动化Runbook基础与GitLab CI安全模型
- 模块二(第6-12章):Runbook仓库结构设计与权限规划
- 模块三(第13-19章):安全扫描与合规检查集成
- 模块四(第20-24章):动态凭证管理与Vault集成
- 模块五(第25-28章):实战案例:密码轮换、故障自愈、安全巡检
- 模块六(第29-30章):审计追溯与Runbook运维最佳实践
重要提示: 本课程所有实战章节均提供完整的
.gitlab-ci.yml和Runbook脚本示例。建议学员在个人或测试GitLab实例上同步操作,不要直接在生产环境执行未经测试的Runbook。