java_demo/JENKINS_SETUP.md
wangtianqi abdb259a9f 更新Jenkins配置支持SSH用户名密码认证 + 添加详细的Jenkins面板操作指南
- 修改Jenkinsfile支持SSH用户名密码认证方式
- 添加JENKINS_PANEL_GUIDE.md详细操作指南
- 添加QUICK_START.md快速配置清单
- 添加服务器配置脚本支持用户名密码认证
- 更新配置文档和部署说明
2025-06-23 18:39:00 +08:00

213 lines
5.2 KiB
Markdown
Raw Permalink 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 配置指南
## 🎯 项目信息
- **Git仓库**: http://116.62.163.84:15006/wangtianqi/java_demo.git
- **目标服务器**: 116.62.163.84
- **SonarQube服务器**: http://116.62.163.84:15010
- **SonarQube Token**: squ_7e4217cabd0faae6f3b8ee359b3b8e2ac52eb69a
## 📋 Jenkins配置步骤
### 1. 创建Pipeline项目
1. **登录Jenkins****新建任务**
2. **输入任务名称**: `java-demo-pipeline`
3. **选择Pipeline****确定**
### 2. 配置项目
#### 基本配置
- **描述**: Jenkins CI/CD Demo Project with Spring Boot 3
- **GitHub项目**: http://116.62.163.84:15006/wangtianqi/java_demo.git
#### Pipeline配置
- **Definition**: Pipeline script from SCM
- **SCM**: Git
- **Repository URL**: http://116.62.163.84:15006/wangtianqi/java_demo.git
- **Credentials**: 添加Git凭据用户名wangtianqi
- **Branch**: */main
- **Script Path**: Jenkinsfile
### 3. 必需的Jenkins插件
确保以下插件已安装:
```bash
# 必需插件列表
- Maven Integration Plugin
- JaCoCo Plugin
- SonarQube Scanner Plugin
- Docker Pipeline Plugin
- SSH Agent Plugin
- Publish Over SSH Plugin
- Blue Ocean Plugin (推荐)
```
### 4. 工具配置
#### 4.1 JDK配置
- **管理Jenkins** → **工具配置****JDK**
- **Name**: JDK-17
- **JAVA_HOME**: /usr/lib/jvm/java-17-openjdk
#### 4.2 Maven配置
- **管理Jenkins** → **工具配置****Maven**
- **Name**: Maven-3.9.3
- **MAVEN_HOME**: /opt/maven
#### 4.3 SonarQube配置
- **管理Jenkins** → **系统配置****SonarQube servers**
- **Name**: SonarQube
- **Server URL**: http://116.62.163.84:15010
- **Server authentication token**: squ_7e4217cabd0faae6f3b8ee359b3b8e2ac52eb69a
### 5. 凭据配置
#### 5.1 Git凭据
- **管理Jenkins** → **凭据管理****添加凭据**
- **类型**: Username with password
- **ID**: git-credentials
- **用户名**: wangtianqi
- **密码**: [您的Git密码]
#### 5.2 服务器SSH凭据用户名密码方式
- **管理Jenkins** → **凭据管理****添加凭据**
- **类型**: Username with password
- **ID**: deploy-server-ssh
- **用户名**: root (或您的服务器用户名)
- **密码**: [服务器用户密码]
- **描述**: Deploy Server SSH Credentials
> **注意**: 使用用户名密码方式需要在Jenkins服务器上安装 `sshpass` 工具。大多数现代Linux发行版都可以通过包管理器安装。
### 6. 环境要求
#### 6.1 Jenkins服务器环境
```bash
# 必需软件
- JDK 17
- Maven 3.9+
- Docker
- Git
- curl
```
#### 6.2 目标服务器环境 (116.62.163.84)
```bash
# 必需软件
- Docker
- Docker Compose (可选)
# 防火墙配置
- 开放端口 80 (生产环境)
- 开放端口 8080 (测试环境)
```
### 7. Pipeline流程
```mermaid
graph TD
A[代码检出] --> B[环境检查]
B --> C[编译]
C --> D[单元测试]
D --> E[代码质量扫描]
E --> F[打包]
F --> G[构建Docker镜像]
G --> H{分支判断}
H -->|develop/feature| I[部署到测试环境]
H -->|main/master| J[部署到生产环境]
I --> K[健康检查]
J --> K
K --> L[完成]
```
### 8. 部署说明
#### 8.1 测试环境部署
- **触发条件**: develop 或 feature/* 分支
- **端口**: 8080
- **容器名**: jenkins-demo-test
#### 8.2 生产环境部署
- **触发条件**: main 或 master 分支
- **端口**: 80
- **容器名**: jenkins-demo-prod
- **需要手动确认**
### 9. 监控地址
部署完成后的访问地址:
```bash
# 生产环境
http://116.62.163.84/api/health # 健康检查
http://116.62.163.84/api/users # 用户管理API
http://116.62.163.84/api/info # 应用信息
# 测试环境
http://116.62.163.84:8080/api/health # 健康检查
http://116.62.163.84:8080/api/users # 用户管理API
http://116.62.163.84:8080/api/info # 应用信息
```
### 10. 故障排除
#### 10.1 常见问题
**构建失败**
```bash
# 检查Jenkins日志
cat /var/log/jenkins/jenkins.log
# 检查Maven配置
mvn -version
# 检查JDK配置
java -version
```
**部署失败**
```bash
# 检查目标服务器Docker状态
docker ps -a
docker logs jenkins-demo-prod
# 检查端口占用
netstat -tlnp | grep :80
```
**SonarQube扫描失败**
```bash
# 检查SonarQube服务状态
curl http://116.62.163.84:15010/api/system/status
# 验证Token
curl -u squ_7e4217cabd0faae6f3b8ee359b3b8e2ac52eb69a: http://116.62.163.84:15010/api/authentication/validate
```
### 11. 构建触发器
可以配置以下触发器:
- **轮询SCM**: `H/5 * * * *` (每5分钟检查一次)
- **Webhook**: 在Git仓库配置Webhook
- **定时构建**: `H 2 * * *` (每天凌晨2点)
### 12. 通知配置
可以配置以下通知方式:
- **邮件通知**: 构建结果发送邮件
- **钉钉通知**: 集成钉钉机器人
- **企业微信**: 集成企业微信机器人
---
## 🎉 完成!
配置完成后您的团队就可以享受完整的CI/CD流程了
1. **代码提交****自动构建****自动测试****代码扫描****自动部署**
2. **质量保证**: 单元测试覆盖率、代码质量检查
3. **快速反馈**: 构建失败立即通知,快速定位问题
4. **环境一致性**: Docker容器化部署确保环境一致性