# 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流程了!**