温馨提示×

Jenkins 怎么迁到 Ubuntu

小樊
39
2026-10-21 19:43:23
栏目: 智能运维

下面给你一个从零开始把 Jenkins 迁移到 Ubuntu 服务器的实用流程,适用于:

  • 旧 Jenkins(Linux / Windows 均可)
  • 新服务器是 Ubuntu(20.04 / 22.04 常见)

一、迁移前准备(新旧服务器都要做)

1️⃣ 确认 Jenkins 版本

在旧 Jenkins 上执行:

jenkins --version
# 或
cat /usr/share/jenkins/jenkins.war | grep -a "Jenkins ver"

✅ 建议:新旧版本尽量一致(大版本差距不要超过 1 个 LTS)


2️⃣ 确认 Jenkins 数据目录

默认是:

/var/lib/jenkins

包含:

  • jobs/(任务)
  • users/(用户)
  • config.xml
  • plugins/
  • credentials.xml

二、旧 Jenkins 备份(关键)

方法 1(推荐):直接打包数据目录

在旧服务器:

sudo systemctl stop jenkins
sudo tar -czvf jenkins-backup.tar.gz /var/lib/jenkins

⚠️ 一定要 先停 Jenkins,否则可能数据不完整


方法 2:使用 Jenkins 备份插件(可选)

  • ThinBackup
  • Backup Plugin

适合生产环境定期备份。


三、新 Ubuntu 安装 Jenkins

1️⃣ 安装 Java(Jenkins 依赖)

sudo apt update
sudo apt install openjdk-17-jdk -y
java -version

2️⃣ 安装 Jenkins

sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
  https://pkg.jenkins.io/debian-stable/jenkins.io.key

echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
  https://pkg.jenkins.io/debian-stable binary/" | \
  sudo tee /etc/apt/sources.list.d/jenkins.list

sudo apt update
sudo apt install jenkins -y

3️⃣ 启动 Jenkins

sudo systemctl enable jenkins
sudo systemctl start jenkins
sudo systemctl status jenkins

访问:

http://<新服务器IP>:8080

四、迁移 Jenkins 数据到 Ubuntu

1️⃣ 停止新 Jenkins

sudo systemctl stop jenkins

2️⃣ 拷贝备份到新服务器

scp jenkins-backup.tar.gz ubuntu@新服务器IP:/tmp/

3️⃣ 恢复数据

sudo rm -rf /var/lib/jenkins
sudo tar -xzvf /tmp/jenkins-backup.tar.gz -C /

确保权限正确:

sudo chown -R jenkins:jenkins /var/lib/jenkins

4️⃣ 启动 Jenkins

sudo systemctl start jenkins

打开页面,应该能看到 原有任务、用户、配置。


五、常见迁移问题

❌ 插件不兼容

解决:

  • 登录 Jenkins
  • Manage Jenkins → Manage Plugins → 更新

❌ 凭据丢失 / 无法解密

原因:

  • secrets/ 目录没一起迁移

✅ 必须包含:

/var/lib/jenkins/secrets/

❌ 构建节点连不上

  • 检查 known_hosts
  • SSH key 是否一起迁移
  • 防火墙端口(22 / 8080)

六、可选优化(Ubuntu 上)

  • 使用 Nginx 反向代理
  • 开启 HTTPS
  • 配置 systemd 自动重启
  • 定期 ThinBackup

七、最简总结(一句话版)

停旧 Jenkins → 打包 /var/lib/jenkins → Ubuntu 装同版本 Jenkins → 覆盖数据 → 改权限 → 启动


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

  • 旧 Jenkins 是 Linux 还是 Windows
  • Jenkins 版本
  • 是否用了 Docker

我可以给你更精确的迁移命令。

0 踩