java_demo/JENKINS_PASSWORD_SETUP.md

205 lines
4.8 KiB
Markdown
Raw Permalink Normal View History

# 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