java_demo/ENTERPRISE_JENKINS_GUIDE.md
wangtianqi 7b8bd55554 feat: 完善Jenkins流水线配置
主要更新:
- 使用SSH私钥认证替代用户名密码认证
- 配置deploy-server-ssh-key凭据ID
- 修复Jenkinsfile格式和缩进问题
- 添加SSH配置指南和企业级部署文档

 技术改进:
- 使用sshagent进行安全的SSH连接
- 移除sshpass依赖,提升安全性
- 统一使用root@116.62.163.84进行部署
- 优化Docker镜像传输和部署流程

 新增文档:
- SSH_CONFIG_GUIDE.md - SSH私钥配置指南
- ENTERPRISE_JENKINS_GUIDE.md - 企业级Jenkins部署
- jenkins-docker/ - Jenkins Docker化部署方案
2025-06-23 21:14:09 +08:00

5.7 KiB
Raw Blame History

企业级Jenkins CI/CD平台配置指南

🎯 平台特性

企业级功能

  • 配置即代码使用JCasC实现Jenkins配置自动化
  • 多项目类型支持Java Maven/Gradle、Node.js、Python、.NET
  • 通用Pipeline模板无需编写复杂Jenkinsfile
  • 安全扫描集成:依赖检查、镜像安全扫描
  • 多环境部署:测试、预发布、生产环境自动化部署
  • 通知集成邮件、Slack、钉钉等多种通知方式

开发友好

  • 简化配置:项目只需维护 .ci-config.yml 文件
  • 自动检测:自动识别项目类型和构建工具
  • 并行构建:支持多阶段并行执行,提升构建速度
  • 智能缓存Maven仓库、Node模块等智能缓存

🚀 快速部署

1. 一键部署命令

# 克隆项目
git clone http://116.62.163.84:15006/wangtianqi/java_demo.git
cd java_demo/jenkins-docker

# 执行部署脚本
chmod +x deploy-enterprise.sh
./deploy-enterprise.sh

2. 手动部署步骤

# 构建镜像
docker-compose build

# 启动服务
docker-compose up -d

# 查看状态
docker-compose ps

🔧 项目接入指南

1. 创建项目配置文件

在项目根目录创建 .ci-config.yml

project:
  name: "my-project"
  type: "java-maven"  # 或 java-gradle, nodejs, python
  
build:
  jdk: "17"  # Java项目专用
  
test:
  unit_tests:
    enabled: true
  coverage:
    threshold: 80
    
docker:
  enabled: true
  image_name: "my-project"
  
deploy:
  target: "test"

2. 创建简化Jenkinsfile

// 项目根目录的 Jenkinsfile
@Library('ci-cd-shared-library') _

def pipelineTemplate = libraryResource 'templates/universal-pipeline.groovy'
evaluate(pipelineTemplate)

3. 在Jenkins中创建Pipeline

  1. 新建Pipeline项目
  2. 配置Git仓库
  3. 指定Jenkinsfile路径
  4. 保存并构建

📋 支持的项目类型

Java Maven项目

project:
  type: "java-maven"
build:
  jdk: "17"
  maven:
    goals: ["clean", "compile", "test", "package"]
    profiles: ["default"]

Java Gradle项目

project:
  type: "java-gradle"
build:
  jdk: "17"
  gradle:
    tasks: ["clean", "build", "test"]

Node.js项目

project:
  type: "nodejs"
build:
  nodejs:
    version: "18"
    package_manager: "npm"
    build_command: "npm run build"
    test_command: "npm test"

Python项目

project:
  type: "python"
build:
  python:
    version: "3.9"
    requirements_file: "requirements.txt"
    test_command: "pytest"

🔐 安全配置

1. 凭据管理

平台预配置了以下凭据类型:

  • Git仓库访问凭据
  • SSH部署凭据
  • SonarQube访问令牌
  • Docker仓库凭据

2. 权限控制

  • 管理员:完整系统权限
  • 开发人员:项目构建和查看权限
  • 只读用户:仅查看权限

3. 安全扫描

  • 依赖漏洞扫描:自动检查第三方依赖安全问题
  • Docker镜像扫描:检查镜像中的安全漏洞
  • 代码质量门禁SonarQube质量门禁

🔄 CI/CD流程

标准流程

  1. 代码检出从Git仓库获取最新代码
  2. 环境检测:自动检测和配置构建环境
  3. 并行分析
    • 代码编译
    • 代码质量检查
  4. 并行测试
    • 单元测试
    • 集成测试
  5. SonarQube分析:代码质量和安全分析
  6. 制品构建
    • 应用打包
    • Docker镜像构建
  7. 安全扫描
    • 依赖安全扫描
    • 镜像安全扫描
  8. 自动部署:根据分支策略自动部署
  9. 部署验证:健康检查和功能验证

分支策略

  • main/master:部署到生产环境(需要人工确认)
  • develop:部署到测试环境
  • feature/*:运行测试,不部署
  • release/*:部署到预发布环境

📊 监控和通知

构建监控

  • 构建状态实时显示
  • 构建历史和趋势分析
  • 测试报告和覆盖率报告
  • 代码质量趋势

通知集成

支持多种通知方式:

notifications:
  email:
    enabled: true
    recipients: ["team@company.com"]
  slack:
    enabled: true
    channel: "#ci-cd"
  dingtalk:
    enabled: true
    webhook_url: "your-webhook-url"

🛠️ 日常运维

服务管理

# 启动服务
./start.sh

# 停止服务
./stop.sh

# 重启服务
./restart.sh

# 查看日志
./logs.sh          # Jenkins日志
./logs.sh sonar    # SonarQube日志

# 备份数据
./backup.sh

系统优化

  1. 内存调优根据项目数量调整Jenkins内存
  2. 并发控制:配置合适的执行器数量
  3. 缓存策略启用Maven、npm等缓存
  4. 清理策略:定期清理旧构建和工作空间

🔧 故障排查

常见问题

  1. 构建失败:检查项目配置和依赖
  2. 部署失败验证SSH凭据和目标服务器
  3. 插件问题重启Jenkins或重新安装插件
  4. 性能问题:增加内存或优化构建脚本

调试技巧

# 查看容器状态
docker-compose ps

# 查看详细日志
docker-compose logs -f jenkins

# 进入容器调试
docker exec -it jenkins-custom bash

# 检查网络连接
docker exec jenkins-custom curl -I http://116.62.163.84:15010

🚀 扩展开发

自定义Pipeline模板

  1. 修改 pipeline-templates/universal-pipeline.groovy
  2. 添加新的项目类型支持
  3. 扩展部署策略

共享库开发

  1. 创建Jenkins共享库项目
  2. 实现通用构建方法
  3. 在Jenkins中配置共享库

插件集成

  1. 在Dockerfile中添加新插件
  2. 在JCasC配置中添加插件配置
  3. 重新构建Jenkins镜像

这个企业级配置提供了完整的CI/CD解决方案支持快速接入新项目无需复杂的Jenkinsfile编写。