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

269 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 企业级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编写。