下面给你一套Debian 上 Jenkins 迁移的完整实用方案,涵盖同机迁移、跨服务器迁移、以及 Docker 场景,你可以按实际情况选。
dpkg -l | grep jenkins
systemctl status jenkins
常见情况:
下面以 apt 安装的 Jenkins(最常见) 为主。
Jenkins 的核心数据都在:
JENKINS_HOME = /var/lib/jenkins
| 目录/文件 | 说明 |
|---|---|
jobs/ |
任务配置 |
config.xml |
全局配置 |
users/ |
用户 |
secrets/ |
凭据(⚠️ 非常重要) |
plugins/ |
插件 |
nodes/ |
Agent 节点 |
workspace/ |
工作空间(可选) |
fingerprints/ |
构建指纹 |
✅ 结论:迁移 /var/lib/jenkins 基本等于迁移整个 Jenkins
systemctl stop jenkins
cd /var/lib
tar czvf jenkins-backup.tar.gz jenkins
scp jenkins-backup.tar.gz user@new-server:/tmp/
apt update
apt install openjdk-11-jdk -y
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian-stable binary/ | tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
apt update
apt install jenkins -y
⚠️ 先不要启动 Jenkins
systemctl stop jenkins
mv /var/lib/jenkins /var/lib/jenkins.bak
tar xzvf /tmp/jenkins-backup.tar.gz -C /var/lib
chown -R jenkins:jenkins /var/lib/jenkins
systemctl daemon-reload
systemctl start jenkins
systemctl enable jenkins
systemctl status jenkins
浏览器访问:
http://<新服务器IP>:8080
✅ 所有 Job、用户、凭据、插件都在
如果版本差距大:
jobs/ + config.xml,插件重新安装docker cp jenkins:/var/jenkins_home /backup/jenkins_home
恢复:
docker cp /backup/jenkins_home/. jenkins:/var/jenkins_home
chown -R 1000:1000 /var/jenkins_home
# 进入 Jenkins → 系统管理 → 插件管理 → 更新
nodes/ 配置chown -R jenkins:jenkins /var/lib/jenkins
如果你只想迁移 Job:
scp -r /var/lib/jenkins/jobs new:/var/lib/jenkins/
⚠️ 不包含用户、凭据、插件
如果你愿意,可以告诉我:
我可以给你定制版迁移方案。