- 修改Jenkinsfile支持SSH用户名密码认证方式 - 添加JENKINS_PANEL_GUIDE.md详细操作指南 - 添加QUICK_START.md快速配置清单 - 添加服务器配置脚本支持用户名密码认证 - 更新配置文档和部署说明
261 lines
5.5 KiB
Markdown
261 lines
5.5 KiB
Markdown
# Jenkins配置指南
|
||
|
||
## 🚀 Jenkins CI/CD配置完整指南
|
||
|
||
### 📋 前置条件检查
|
||
|
||
**Jenkins服务器要求:**
|
||
- ✅ Jenkins 2.400+
|
||
- ✅ JDK 17
|
||
- ✅ Maven 3.9+
|
||
- ✅ Docker
|
||
- ✅ Git
|
||
|
||
**目标服务器要求:**
|
||
- ✅ Docker已安装
|
||
- ✅ SSH访问权限
|
||
- ✅ 防火墙配置(80、8080端口)
|
||
|
||
### 🔧 Step 1: Jenkins插件安装
|
||
|
||
在 `Jenkins管理 → 插件管理` 中安装以下插件:
|
||
|
||
```
|
||
必需插件:
|
||
- Maven Integration Plugin
|
||
- JaCoCo Plugin
|
||
- SonarQube Scanner Plugin
|
||
- Docker Pipeline Plugin
|
||
- SSH Agent Plugin
|
||
- Git Plugin
|
||
- Pipeline Plugin
|
||
|
||
推荐插件:
|
||
- Blue Ocean (可视化Pipeline)
|
||
- Timestamper (时间戳)
|
||
- Build Timeout (构建超时)
|
||
- Workspace Cleanup (工作空间清理)
|
||
```
|
||
|
||
### 🛠️ Step 2: 全局工具配置
|
||
|
||
进入 `Jenkins管理 → 全局工具配置`:
|
||
|
||
**JDK配置:**
|
||
```
|
||
名称: JDK-17
|
||
JAVA_HOME: /usr/lib/jvm/java-17-openjdk
|
||
自动安装: ✅ (如果需要)
|
||
```
|
||
|
||
**Maven配置:**
|
||
```
|
||
名称: Maven-3.9.3
|
||
自动安装: ✅
|
||
版本: 3.9.3
|
||
```
|
||
|
||
**SonarQube Scanner配置:**
|
||
```
|
||
名称: SonarQube Scanner
|
||
自动安装: ✅
|
||
版本: Latest
|
||
```
|
||
|
||
**Docker配置:**
|
||
```
|
||
名称: Docker
|
||
自动安装: ✅ (或指定Docker路径)
|
||
```
|
||
|
||
### 🔐 Step 3: 凭据配置
|
||
|
||
进入 `Jenkins管理 → 凭据`:
|
||
|
||
**SSH密钥配置:**
|
||
```
|
||
域: 全局凭据
|
||
类型: SSH Username with private key
|
||
ID: deploy-server-ssh
|
||
描述: Deploy Server SSH Key
|
||
用户名: root
|
||
私钥: [粘贴您的SSH私钥内容]
|
||
```
|
||
|
||
**SonarQube Token配置:**
|
||
```
|
||
域: 全局凭据
|
||
类型: Secret text
|
||
ID: sonar-token
|
||
Secret: squ_7e4217cabd0faae6f3b8ee359b3b8e2ac52eb69a
|
||
描述: SonarQube Authentication Token
|
||
```
|
||
|
||
### 🌐 Step 4: 系统配置
|
||
|
||
进入 `Jenkins管理 → 系统配置`:
|
||
|
||
**SonarQube服务器配置:**
|
||
```
|
||
名称: SonarQube
|
||
服务器URL: http://116.62.163.84:15010
|
||
认证令牌: [选择上面创建的sonar-token凭据]
|
||
```
|
||
|
||
**全局属性(可选):**
|
||
```
|
||
环境变量:
|
||
- DEPLOY_SERVER = 116.62.163.84
|
||
- DOCKER_REGISTRY = 116.62.163.84:5000 (如果有私有仓库)
|
||
```
|
||
|
||
### 📦 Step 5: 创建Pipeline项目
|
||
|
||
1. **新建项目:**
|
||
```
|
||
点击 "新建任务"
|
||
输入项目名称: jenkins-demo
|
||
选择: Pipeline
|
||
点击 "确定"
|
||
```
|
||
|
||
2. **配置项目:**
|
||
```
|
||
描述: Jenkins CI/CD Demo Project with Spring Boot 3
|
||
|
||
Pipeline配置:
|
||
- Definition: Pipeline script from SCM
|
||
- SCM: Git
|
||
- Repository URL: http://116.62.163.84:15006/wangtianqi/java_demo.git
|
||
- Credentials: [如果需要Git凭据]
|
||
- Branch Specifier: */main
|
||
- Script Path: Jenkinsfile
|
||
```
|
||
|
||
3. **触发器配置:**
|
||
```
|
||
✅ GitHub hook trigger for GITScm polling (如果使用GitHub)
|
||
✅ Poll SCM: H/5 * * * * (每5分钟检查一次代码变更)
|
||
```
|
||
|
||
### 🖥️ Step 6: 目标服务器配置
|
||
|
||
在目标服务器(116.62.163.84)上运行配置脚本:
|
||
|
||
```bash
|
||
# 1. 上传配置脚本到服务器
|
||
scp server-setup.sh root@116.62.163.84:/tmp/
|
||
|
||
# 2. 登录服务器并运行配置
|
||
ssh root@116.62.163.84
|
||
chmod +x /tmp/server-setup.sh
|
||
/tmp/server-setup.sh
|
||
```
|
||
|
||
### 🔍 Step 7: SSH连接测试
|
||
|
||
在Jenkins服务器上测试SSH连接:
|
||
|
||
```bash
|
||
# 测试SSH连接
|
||
ssh -o StrictHostKeyChecking=no root@116.62.163.84 "echo 'SSH连接成功'"
|
||
|
||
# 测试Docker命令
|
||
ssh root@116.62.163.84 "docker --version"
|
||
```
|
||
|
||
### 🧪 Step 8: 第一次构建测试
|
||
|
||
1. **手动触发构建:**
|
||
- 进入项目页面
|
||
- 点击 "立即构建"
|
||
- 查看构建日志
|
||
|
||
2. **检查构建阶段:**
|
||
```
|
||
✅ Checkout - 代码检出
|
||
✅ 环境检查 - 工具版本验证
|
||
✅ 编译 - Maven编译
|
||
✅ 单元测试 - JUnit测试执行
|
||
✅ 代码质量扫描 - SonarQube分析
|
||
✅ 打包 - JAR文件生成
|
||
✅ Docker镜像构建
|
||
✅ 部署到目标服务器
|
||
✅ 健康检查
|
||
```
|
||
|
||
### 📊 Step 9: 监控和维护
|
||
|
||
**查看构建报告:**
|
||
- 测试报告:项目页面 → Test Result
|
||
- 代码覆盖率:项目页面 → Coverage Report
|
||
- SonarQube报告:http://116.62.163.84:15010
|
||
|
||
**应用监控:**
|
||
- 应用健康检查:http://116.62.163.84/api/health
|
||
- 应用信息:http://116.62.163.84/api/info
|
||
- API测试:http://116.62.163.84/api/users
|
||
|
||
**服务器维护:**
|
||
```bash
|
||
# 查看应用状态
|
||
ssh root@116.62.163.84 "/opt/jenkins-demo/monitor.sh"
|
||
|
||
# 查看应用日志
|
||
ssh root@116.62.163.84 "docker logs jenkins-demo-prod"
|
||
|
||
# 清理旧资源
|
||
ssh root@116.62.163.84 "/opt/jenkins-demo/cleanup.sh"
|
||
```
|
||
|
||
### 🚨 常见问题解决
|
||
|
||
**问题1:SSH连接失败**
|
||
```bash
|
||
# 解决方案:检查SSH密钥配置
|
||
ssh-keygen -t rsa -b 4096
|
||
ssh-copy-id root@116.62.163.84
|
||
```
|
||
|
||
**问题2:Docker权限问题**
|
||
```bash
|
||
# 解决方案:添加jenkins用户到docker组
|
||
sudo usermod -aG docker jenkins
|
||
sudo systemctl restart jenkins
|
||
```
|
||
|
||
**问题3:SonarQube连接失败**
|
||
```bash
|
||
# 解决方案:检查SonarQube服务状态
|
||
curl -I http://116.62.163.84:15010
|
||
```
|
||
|
||
**问题4:部署失败**
|
||
```bash
|
||
# 解决方案:检查目标服务器状态
|
||
ssh root@116.62.163.84 "docker ps -a"
|
||
ssh root@116.62.163.84 "docker logs jenkins-demo-prod"
|
||
```
|
||
|
||
### 🎯 成功标准
|
||
|
||
构建成功后,您应该能够:
|
||
|
||
1. ✅ 在Jenkins中看到绿色的构建状态
|
||
2. ✅ 访问 http://116.62.163.84/api/health 看到健康状态
|
||
3. ✅ 访问 http://116.62.163.84/api/users 看到用户列表
|
||
4. ✅ 在SonarQube中看到代码质量报告
|
||
5. ✅ 在Jenkins中看到测试报告和代码覆盖率
|
||
|
||
### 📞 技术支持
|
||
|
||
如果遇到问题,请检查:
|
||
1. Jenkins构建日志
|
||
2. 目标服务器Docker日志
|
||
3. SonarQube服务状态
|
||
4. 网络连接状况
|
||
|
||
---
|
||
|
||
🎉 **配置完成后,您的团队就可以享受完整的CI/CD流程了!**
|