主要更新: - 使用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化部署方案
5.7 KiB
5.7 KiB
企业级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
- 新建Pipeline项目
- 配置Git仓库
- 指定Jenkinsfile路径
- 保存并构建
📋 支持的项目类型
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流程
标准流程
- 代码检出:从Git仓库获取最新代码
- 环境检测:自动检测和配置构建环境
- 并行分析:
- 代码编译
- 代码质量检查
- 并行测试:
- 单元测试
- 集成测试
- SonarQube分析:代码质量和安全分析
- 制品构建:
- 应用打包
- Docker镜像构建
- 安全扫描:
- 依赖安全扫描
- 镜像安全扫描
- 自动部署:根据分支策略自动部署
- 部署验证:健康检查和功能验证
分支策略
- 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
系统优化
- 内存调优:根据项目数量调整Jenkins内存
- 并发控制:配置合适的执行器数量
- 缓存策略:启用Maven、npm等缓存
- 清理策略:定期清理旧构建和工作空间
🔧 故障排查
常见问题
- 构建失败:检查项目配置和依赖
- 部署失败:验证SSH凭据和目标服务器
- 插件问题:重启Jenkins或重新安装插件
- 性能问题:增加内存或优化构建脚本
调试技巧
# 查看容器状态
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模板
- 修改
pipeline-templates/universal-pipeline.groovy
- 添加新的项目类型支持
- 扩展部署策略
共享库开发
- 创建Jenkins共享库项目
- 实现通用构建方法
- 在Jenkins中配置共享库
插件集成
- 在Dockerfile中添加新插件
- 在JCasC配置中添加插件配置
- 重新构建Jenkins镜像
这个企业级配置提供了完整的CI/CD解决方案,支持快速接入新项目,无需复杂的Jenkinsfile编写。