# Jenkins 用户名密码配置快速指南 ## 🚀 简化配置步骤(使用用户名密码) ### 1. 准备工作 #### 1.1 确保目标服务器SSH配置 在您的目标服务器 (116.62.163.84) 上执行: ```bash # 编辑SSH配置文件 sudo vi /etc/ssh/sshd_config # 确保以下配置项 PasswordAuthentication yes PermitRootLogin yes # 重启SSH服务 sudo systemctl restart sshd ``` #### 1.2 安装sshpass(在Jenkins服务器上) ```bash # Ubuntu/Debian sudo apt-get update && sudo apt-get install -y sshpass # CentOS/RHEL sudo yum install -y sshpass # 或者通过EPEL仓库 sudo yum install -y epel-release sudo yum install -y sshpass ``` ### 2. Jenkins凭据配置 #### 2.1 Git仓库凭据 1. **管理Jenkins** → **凭据** → **系统** → **全局凭据** → **添加凭据** 2. 配置信息: ``` 类型: Username with password 范围: 全局 用户名: wangtianqi 密码: [您的Git密码] ID: git-credentials 描述: Git Repository Access ``` #### 2.2 服务器SSH凭据 1. **管理Jenkins** → **凭据** → **系统** → **全局凭据** → **添加凭据** 2. 配置信息: ``` 类型: Username with password 范围: 全局 用户名: root 密码: [服务器root密码] ID: deploy-server-ssh 描述: Deploy Server SSH Access ``` ### 3. 创建Pipeline项目 #### 3.1 新建项目 1. **Jenkins首页** → **新建任务** 2. **任务名称**: `java-demo-pipeline` 3. **选择类型**: `Pipeline` 4. **点击确定** #### 3.2 配置Pipeline 在项目配置页面的**Pipeline**部分: ``` Definition: Pipeline script from SCM SCM: Git Repository URL: http://116.62.163.84:15006/wangtianqi/java_demo.git Credentials: git-credentials (选择刚创建的Git凭据) Branch: */main Script Path: Jenkinsfile ``` ### 4. 工具配置 #### 4.1 JDK配置 **管理Jenkins** → **全局工具配置** → **JDK** ``` 名称: JDK-17 自动安装: 勾选 版本: Java 17 (或手动指定JAVA_HOME) ``` #### 4.2 Maven配置 **管理Jenkins** → **全局工具配置** → **Maven** ``` 名称: Maven-3.9.3 自动安装: 勾选 版本: 3.9.3 ``` ### 5. 必需插件 在**管理Jenkins** → **插件管理**中安装: ``` ✅ Maven Integration Plugin ✅ JaCoCo Plugin ✅ Docker Pipeline Plugin ✅ Credentials Plugin (通常已预装) ✅ SSH Credentials Plugin ✅ Pipeline Plugin (通常已预装) ``` ### 6. 测试连接 #### 6.1 测试Git连接 在Pipeline项目中点击**立即构建**,查看是否能成功克隆代码。 #### 6.2 测试SSH连接 您可以在Jenkins的**脚本命令行**中测试SSH连接: **管理Jenkins** → **脚本命令行**,输入: ```groovy withCredentials([usernamePassword(credentialsId: 'deploy-server-ssh', usernameVariable: 'SSH_USER', passwordVariable: 'SSH_PASS')]) { sh 'sshpass -p "$SSH_PASS" ssh -o StrictHostKeyChecking=no $SSH_USER@116.62.163.84 "echo \'SSH连接成功!\'"' } ``` ### 7. 构建执行 1. **保存项目配置** 2. **点击立即构建** 3. **查看构建日志**:点击构建号 → **控制台输出** ### 8. 构建流程说明 ``` 🔄 代码检出 → 🔍 环境检查 → 🔨 编译 → 🧪 单元测试 ↓ 🔍 代码扫描 → 📦 打包 → 🐳 构建镜像 → 📤 传输镜像 ↓ 🚀 部署应用 → 🏥 健康检查 → ✅ 完成 ``` ### 9. 分支部署策略 - **main/master分支**: 部署到生产环境 (端口80) - **develop分支**: 部署到测试环境 (端口8080) - **feature分支**: 部署到测试环境 (端口8080) ### 10. 验证部署 构建成功后访问: ```bash # 生产环境 (main分支) curl http://116.62.163.84/api/health # 测试环境 (develop分支) curl http://116.62.163.84:8080/api/health ``` ### 11. 常见问题 #### Q1: sshpass命令未找到 **解决方案**: 在Jenkins服务器上安装sshpass ```bash sudo apt-get install sshpass # Ubuntu sudo yum install sshpass # CentOS ``` #### Q2: SSH连接被拒绝 **解决方案**: 检查目标服务器SSH配置 ```bash # 在目标服务器上 sudo vi /etc/ssh/sshd_config # 确保 PasswordAuthentication yes sudo systemctl restart sshd ``` #### Q3: Docker权限不足 **解决方案**: 将jenkins用户添加到docker组 ```bash sudo usermod -aG docker jenkins sudo systemctl restart jenkins ``` ### 12. 安全建议 1. **使用强密码**: 确保服务器密码足够复杂 2. **限制SSH访问**: 配置防火墙仅允许Jenkins服务器访问 3. **定期更新密码**: 定期修改服务器密码并更新Jenkins凭据 4. **监控登录日志**: 定期检查服务器登录日志 --- ## 🎉 完成! 按照以上步骤配置后,您就可以使用用户名密码的方式进行Jenkins CI/CD了! 如果遇到问题,请检查: 1. 凭据ID是否正确 (`deploy-server-ssh`) 2. 用户名密码是否正确 3. 目标服务器SSH服务是否正常 4. Jenkins服务器是否安装了sshpass