java_demo/JENKINS_PANEL_GUIDE.md

347 lines
8.5 KiB
Markdown
Raw Permalink Normal View History

# Jenkins面板完整构建配置指南
## 🎯 项目信息
- **Git仓库**: http://116.62.163.84:15006/wangtianqi/java_demo.git
- **目标服务器**: 116.62.163.84
- **SonarQube服务器**: http://116.62.163.84:15010
- **认证方式**: 用户名密码SSH
---
## 📋 第一部分:前期准备
### 1. 登录Jenkins
1. 打开浏览器访问您的Jenkins服务器
```
http://您的Jenkins服务器IP:8080
```
2. 输入管理员用户名和密码登录
### 2. 安装必需插件
**管理Jenkins** → **插件管理****可选插件**
搜索并安装以下插件:
```
✓ Maven Integration Plugin
✓ JaCoCo Plugin
✓ SonarQube Scanner Plugin
✓ Docker Pipeline Plugin
✓ SSH Agent Plugin
✓ Git Plugin
✓ Pipeline Plugin
✓ Credentials Binding Plugin
✓ Blue Ocean Plugin (推荐)
```
**安装步骤:**
1. 勾选需要的插件
2. 点击 **"直接安装"**
3. 等待安装完成并重启Jenkins
---
## 🔧 第二部分:系统配置
### 1. 配置全局工具
**管理Jenkins** → **全局工具配置**
#### 1.1 JDK配置
- 点击 **"新增JDK"**
- **Name**: `JDK-17`
- **JAVA_HOME**: `/usr/lib/jvm/java-17-openjdk`Linux或您的JDK安装路径
- 取消勾选 **"自动安装"**
#### 1.2 Maven配置
- 点击 **"新增Maven"**
- **Name**: `Maven-3.9.3`
- 勾选 **"自动安装"**
- **版本**: 选择 `3.9.3`
#### 1.3 Git配置如果需要
- 通常系统已有Git保持默认即可
### 2. 配置SonarQube服务器
**管理Jenkins** → **系统配置****SonarQube servers**
- 点击 **"Add SonarQube"**
- **Name**: `SonarQube`
- **Server URL**: `http://116.62.163.84:15010`
- **Server authentication token**: `squ_7e4217cabd0faae6f3b8ee359b3b8e2ac52eb69a`
---
## 🔐 第三部分:凭据配置
### 1. 配置Git凭据
**管理Jenkins** → **凭据****系统****全局凭据****添加凭据**
**Git仓库访问凭据**
- **类型**: `Username with password`
- **范围**: `全局`
- **用户名**: `wangtianqi`
- **密码**: `[您的Git密码]`
- **ID**: `git-credentials`
- **描述**: `Git Repository Access`
### 2. 配置SSH服务器凭据
**继续添加凭据**
**服务器SSH访问凭据**
- **类型**: `Username with password`
- **范围**: `全局`
- **用户名**: `root`
- **密码**: `[您的服务器root密码]`
- **ID**: `deploy-server-ssh`
- **描述**: `Deploy Server SSH Access`
---
## 🚀 第四部分创建Pipeline项目
### 1. 创建新项目
1. 回到Jenkins首页
2. 点击左侧 **"新建任务"** 或 **"New Item"**
3. **输入任务名称**: `java-demo-pipeline`
4. **选择类型**: `Pipeline`
5. 点击 **"确定"**
### 2. 配置项目基本信息
#### 2.1 基本设置
- **描述**:
```
Jenkins CI/CD Demo Project with Spring Boot 3
用于演示完整的CI/CD流程包括代码拉取、编译构建、单元测试、代码扫描、Docker打包和部署
```
#### 2.2 构建保留策略
- 勾选 **"丢弃旧的构建"**
- **保持构建的最大个数**: `10`
- **保持构建的天数**: `30`
#### 2.3 构建触发器(可选)
- **GitHub hook trigger for GITScm polling**: 勾选此项实现代码提交自动构建
- **轮询SCM**: 输入 `H/5 * * * *`每5分钟检查一次代码变更
### 3. 配置Pipeline
#### 3.1 Pipeline基本配置
- **Definition**: 选择 `Pipeline script from SCM`
- **SCM**: 选择 `Git`
#### 3.2 Git仓库配置
- **Repository URL**:
```
http://116.62.163.84:15006/wangtianqi/java_demo.git
```
- **Credentials**: 选择之前创建的 `git-credentials`
- **Branch Specifier**: `*/main`
#### 3.3 Script Path
- **Script Path**: `Jenkinsfile`
#### 3.4 轻量级检出(推荐)
- 勾选 **"Lightweight checkout"**
### 4. 保存配置
点击页面底部的 **"保存"**
---
## 🎬 第五部分:执行构建
### 1. 立即构建
1. 在项目主页点击左侧 **"立即构建"** 或 **"Build Now"**
2. 系统开始执行Pipeline
### 2. 监控构建过程
#### 2.1 查看构建历史
- 在左侧 **"构建历史"** 中可以看到构建列表
- 点击构建号(如 #1)进入构建详情
#### 2.2 查看控制台输出
- 在构建详情页面点击 **"控制台输出"**
- 可以实时查看构建日志
#### 2.3 使用Blue Ocean界面推荐
1. 点击左侧 **"Open Blue Ocean"**
2. 可以看到可视化的Pipeline流程
3. 每个阶段的状态一目了然
### 3. 构建阶段说明
构建将按以下顺序执行:
1. **🔄 Checkout** - 代码检出
- 从Git仓库拉取最新代码
- 显示Git提交ID
2. **🔍 环境检查** - 环境验证
- 检查Java版本
- 检查Maven版本
- 检查Git版本
3. **🔨 编译** - 代码编译
- 执行 `mvn clean compile`
- 跳过测试阶段
4. **🧪 单元测试** - 测试执行
- 运行所有单元测试
- 生成测试报告和代码覆盖率
5. **🔍 代码质量扫描** - SonarQube分析
- 静态代码分析
- 代码质量评估
6. **📦 打包** - 应用打包
- 生成可执行JAR文件
- 归档构建产物
7. **🐳 构建Docker镜像** - 容器化
- 构建Docker镜像
- 创建版本标签
8. **📤 传输Docker镜像** - 镜像部署
- 将镜像传输到目标服务器
- 在目标服务器加载镜像
9. **🚀 部署应用** - 环境部署
- **测试环境**: develop/feature分支 → 端口8080
- **生产环境**: main/master分支 → 端口80
10. **🏥 健康检查** - 应用验证
- 等待应用启动
- 验证健康检查接口
---
## 📊 第六部分:查看构建结果
### 1. 构建状态说明
- **🔵 蓝色**: 构建成功
- **🔴 红色**: 构建失败
- **🟡 黄色**: 构建不稳定(测试失败但编译成功)
- **⚪ 灰色**: 构建被取消或未执行
### 2. 查看测试报告
1. 进入构建详情页面
2. 点击 **"测试结果"**
3. 查看单元测试通过率和详细结果
### 3. 查看代码覆盖率
1. 在构建详情页面找到 **"JaCoCo代码覆盖率"**
2. 查看代码覆盖率报告
3. 分析哪些代码未被测试覆盖
### 4. 查看SonarQube报告
1. 构建成功后访问:`http://116.62.163.84:15010`
2. 找到项目:`jenkins-demo`
3. 查看代码质量分析结果
### 5. 验证部署结果
构建成功后,根据分支验证部署:
**测试环境develop分支**
```bash
curl http://116.62.163.84:8080/api/health
curl http://116.62.163.84:8080/api/users
```
**生产环境main分支**
```bash
curl http://116.62.163.84/api/health
curl http://116.62.163.84/api/users
```
---
## 🔧 第七部分:故障排除
### 常见问题及解决方案
#### 1. Git克隆失败
**现象**: `fatal: could not read Username`
**解决**:
- 检查Git凭据配置是否正确
- 确认仓库URL可以访问
- 验证用户名密码是否正确
#### 2. Maven构建失败
**现象**: `command not found: mvn`
**解决**:
- 检查Maven工具配置
- 确认Maven自动安装是否完成
- 查看系统环境变量设置
#### 3. Docker构建失败
**现象**: `Cannot connect to the Docker daemon`
**解决**:
- 确认Jenkins服务器已安装Docker
- 检查Jenkins用户是否在docker组
- 确认Docker服务是否运行
#### 4. SSH连接失败
**现象**: `Permission denied (publickey,password)`
**解决**:
- 检查SSH凭据用户名密码
- 确认目标服务器允许密码认证
- 检查防火墙设置
#### 5. 健康检查失败
**现象**: `应用健康检查失败HTTP状态码: 000`
**解决**:
- 检查应用是否正常启动
- 确认端口映射是否正确
- 查看Docker容器日志
### 日志查看方式
```bash
# 查看构建日志
Jenkins控制台输出
# 查看应用日志
docker logs jenkins-demo-prod
docker logs jenkins-demo-test
# 查看系统日志
journalctl -u docker
```
---
## 📈 第八部分:高级配置
### 1. 配置构建通知
可以配置邮件、钉钉、企业微信等通知方式
### 2. 配置多分支Pipeline
支持自动发现和构建Git仓库的多个分支
### 3. 配置并行构建
充分利用服务器资源,加快构建速度
### 4. 配置构建缓存
缓存Maven依赖减少构建时间
---
## 🎉 完成!
配置完成后您的CI/CD流程就搭建好了
**工作流程:**
1. 开发人员提交代码到Git仓库
2. Jenkins自动检测代码变更
3. 执行完整的构建、测试、部署流程
4. 自动部署到对应环境
5. 发送构建结果通知
**访问地址:**
- Jenkins: `http://您的Jenkins服务器:8080`
- SonarQube: `http://116.62.163.84:15010`
- 应用生产环境: `http://116.62.163.84`
- 应用测试环境: `http://116.62.163.84:8080`
现在您的团队可以享受高效的DevOps工作流程了🚀