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