温馨提示×

jenkins怎么连ubuntu部署

小樊
46
2026-10-27 21:37:39
栏目: 智能运维

下面给你一套从零开始的实操流程,讲清楚 Jenkins 怎么连接 Ubuntu 并部署项目。适用于大多数场景(Java / Node / Python 项目都类似)。


一、整体思路

Jenkins(控制端)
   ↓ SSH
Ubuntu 服务器(目标机)
   ↓ 执行脚本
拉代码 → 构建 → 部署 → 启动服务

两种方式常见:

  1. Jenkins 通过 SSH 登录 Ubuntu 执行部署脚本(最常用)
  2. Jenkins 跑在 Ubuntu 本机(localhost 节点)

下面以 SSH 方式 为主。


二、Ubuntu 端准备

1. 安装基础环境

sudo apt update
sudo apt install -y openjdk-11-jdk
sudo apt install -y git

2. 创建部署用户(推荐)

sudo adduser deploy
sudo usermod -aG sudo deploy

3. 配置 SSH

sudo apt install -y openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh

查看 IP:

ip a

三、Jenkins 端配置

1. 安装 Jenkins(如已装可跳过)

sudo apt update
sudo apt install -y openjdk-11-jdk
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install -y jenkins

访问:

http://<jenkins-ip>:8080

四、Jenkins 连接 Ubuntu(SSH)

方式一:Publish Over SSH(推荐)

1. 安装插件

Manage Jenkins → Plugins
搜索安装:
✅ Publish Over SSH

2. 配置 SSH 主机

Manage Jenkins
→ System
→ Publish over SSH

填写:

  • Hostname: Ubuntu IP
  • Username: deploy
  • Remote Directory: /home/deploy
  • 认证方式:
    • 推荐:Use password / key → 粘贴私钥

测试连接 ✅


五、创建 Jenkins 部署任务

1. 新建 Job

New Item → Freestyle project

2. 源码管理

Git
Repository URL: git@github.com:xxx/xxx.git
Credentials: 配置 Git 账号

3. 构建步骤

Send files or execute commands over SSH

示例(部署 Spring Boot):

cd /home/deploy/app
git pull
mvn clean package
ps -ef | grep app.jar | grep -v grep | awk '{print $2}' | xargs kill
nohup java -jar target/app.jar > app.log 2>&1 &

六、示例:Node 项目部署

cd /home/deploy/web
git pull
npm install
npm run build
pm2 restart app || pm2 start npm --name app -- run start

七、常见问题

1. SSH 连不上

  • 防火墙:sudo ufw allow 22
  • 密钥权限:chmod 600 ~/.ssh/id_rsa

2. Jenkins 没权限

sudo visudo
deploy ALL=(ALL) NOPASSWD:ALL

3. 端口被占用

lsof -i:8080

八、进阶(可选)

  • ✅ Jenkins Pipeline(推荐)
  • ✅ Docker + Jenkins
  • ✅ Ansible 批量部署
  • ✅ Webhook 自动触发

如果你愿意,可以告诉我:

  • Jenkins 在哪(本机 / 云服务器)
  • Ubuntu 是本地还是云
  • 部署什么项目(Java / Node / Python)

我可以直接给你 一份可复制的 Jenkinsfile 或部署脚本。

0 踩