java_demo/ENTERPRISE_JENKINS_GUIDE.md

269 lines
5.7 KiB
Markdown
Raw Permalink Normal View History

# 企业级Jenkins CI/CD平台配置指南
## 🎯 平台特性
### ✅ 企业级功能
- **配置即代码**使用JCasC实现Jenkins配置自动化
- **多项目类型支持**Java Maven/Gradle、Node.js、Python、.NET
- **通用Pipeline模板**无需编写复杂Jenkinsfile
- **安全扫描集成**:依赖检查、镜像安全扫描
- **多环境部署**:测试、预发布、生产环境自动化部署
- **通知集成**邮件、Slack、钉钉等多种通知方式
### ✅ 开发友好
- **简化配置**:项目只需维护 `.ci-config.yml` 文件
- **自动检测**:自动识别项目类型和构建工具
- **并行构建**:支持多阶段并行执行,提升构建速度
- **智能缓存**Maven仓库、Node模块等智能缓存
## 🚀 快速部署
### 1. 一键部署命令
```bash
# 克隆项目
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. 手动部署步骤
```bash
# 构建镜像
docker-compose build
# 启动服务
docker-compose up -d
# 查看状态
docker-compose ps
```
## 🔧 项目接入指南
### 1. 创建项目配置文件
在项目根目录创建 `.ci-config.yml`
```yaml
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
```groovy
// 项目根目录的 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项目
```yaml
project:
type: "java-maven"
build:
jdk: "17"
maven:
goals: ["clean", "compile", "test", "package"]
profiles: ["default"]
```
### Java Gradle项目
```yaml
project:
type: "java-gradle"
build:
jdk: "17"
gradle:
tasks: ["clean", "build", "test"]
```
### Node.js项目
```yaml
project:
type: "nodejs"
build:
nodejs:
version: "18"
package_manager: "npm"
build_command: "npm run build"
test_command: "npm test"
```
### Python项目
```yaml
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/***:部署到预发布环境
## 📊 监控和通知
### 构建监控
- 构建状态实时显示
- 构建历史和趋势分析
- 测试报告和覆盖率报告
- 代码质量趋势
### 通知集成
支持多种通知方式:
```yaml
notifications:
email:
enabled: true
recipients: ["team@company.com"]
slack:
enabled: true
channel: "#ci-cd"
dingtalk:
enabled: true
webhook_url: "your-webhook-url"
```
## 🛠️ 日常运维
### 服务管理
```bash
# 启动服务
./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. **性能问题**:增加内存或优化构建脚本
### 调试技巧
```bash
# 查看容器状态
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编写。