适用场景
CI/CD 的价值是"减少人为失误":手工打包、手工上传、手工改配置,每一步都可能出错,而且无法复现。
配置步骤(GitLab CI 流水线)
stages: [build, test, scan, deploy]
build:
stage: build
script:
- docker build -t registry.example.com/app: .
- docker push registry.example.com/app:
scan:
stage: scan
script: trivy image --severity HIGH,CRITICAL registry.example.com/app:
deploy:
stage: deploy
script: kubectl set image deploy/app app=registry.example.com/app:
only: [main]
关键参数与建议
- 环境隔离:开发/测试/预发/生产,配置与密钥分离管理
- 流水线阶段化:构建 → 单测 → 扫描 → 制品 → 部署 → 验证
- 制品唯一版本(提交号或时间戳),可追溯、可回滚
- 部署采用滚动或蓝绿,避免全量重启
- 生产发布需要审批与变更记录(合规要求)
容易踩的坑
- Runner 权限过大(能操作生产集群)
- 变量未做保护,密钥在日志里被打印
- 未做制品扫描,高危漏洞直接上线
验证与巡检
# 验证:流水线各阶段成功、制品可拉取、部署后健康检查通过
- 巡检:Runner 权限最小化、变量受保护、扫描阶段生效
小结
CI/CD 的落地顺序:先把"构建 + 制品 + 手工部署到测试"自动化,再逐步做到生产自动发布。一步到位往往失败。
> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。