适用场景

CI/CD 的价值是"减少人为失误":手工打包、手工上传、手工改配置,每一步都可能出错,而且无法复现。

配置步骤(Jenkins 流水线)

pipeline {
  agent any
  stages {
    stage('Build') { steps { sh 'mvn -B package -DskipTests' } }
    stage('Test')  { steps { sh 'mvn test' } }
    stage('Archive') { steps { archiveArtifacts artifacts: 'target/*.jar' } }
    stage('Deploy') { steps { sh 'ansible-playbook -i prod deploy.yml' } }
  }
}

关键参数与建议

  • 环境隔离:开发/测试/预发/生产,配置与密钥分离管理
  • 流水线阶段化:构建 → 单测 → 扫描 → 制品 → 部署 → 验证
  • 制品唯一版本(提交号或时间戳),可追溯、可回滚
  • 部署采用滚动或蓝绿,避免全量重启
  • 生产发布需要审批与变更记录(合规要求)

容易踩的坑

  • Jenkins 服务器单点,且暴露在公网
  • 凭据明文写入 Job,随日志泄漏
  • 生产部署与应用发布混在同一 Job,无法单独回滚

验证与巡检

# 验证:凭据用 Credentials 管理、Job 权限分离、制品归档
  • 巡检:无明文凭据、权限分离、构建记录可追溯

小结

CI/CD 的落地顺序:先把"构建 + 制品 + 手工部署到测试"自动化,再逐步做到生产自动发布。一步到位往往失败。

> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。