- 修改Jenkinsfile支持SSH用户名密码认证方式 - 添加JENKINS_PANEL_GUIDE.md详细操作指南 - 添加QUICK_START.md快速配置清单 - 添加服务器配置脚本支持用户名密码认证 - 更新配置文档和部署说明
213 lines
5.2 KiB
Markdown
213 lines
5.2 KiB
Markdown
# 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容器化部署,确保环境一致性
|