# 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容器化部署,确保环境一致性