Jenkins数据备份迁移
备份及导入Job
作业任务数据文件
对于一个新创建的没有执行过的任务作业,其路径与文件是这样的:
jenkins@vmcnszs207:~/jobs/testnewjob$ pwd
/var/lib/jenkins/jobs/testnewjob
jenkins@vmcnszs207:~/jobs/testnewjob$ tree
.
├── builds
│ ├── legacyIds
│ └── permalinks
└── config.xml
1 directory, 3 files
jenkins@vmcnszs207:~/jobs/testnewjob$ cat builds/legacyIds
jenkins@vmcnszs207:~/jobs/testnewjob$ cat builds/permalinks
lastCompletedBuild -1
lastFailedBuild -1
lastStableBuild -1
lastSuccessfulBuild -1
lastUnstableBuild -1
lastUnsuccessfulBuild -1
课件一个新 job 只包含了三个文件。其实实践发现,只要有 config.xml 就可以了。
手动创建新作业
根据如上,并实践发现,如果手动创建一个 job,只需要三个步骤:
-
命令行下:
mkdir jobs/testmanualjob -
命令行下:
cp otherjob/config.xml testmanualjob/ -
Jenkins管理界面:
Jenkins->系统管理->读取设置如下:
这样,我们就能在Jenkins界面看到一个新的 testmanualjob 的作业,其配置与已有的 otherjob 作业是一样的。
备份已有作业
Jenkins作业以文件形式存放,并无对数据库的依赖。Jenkins的job都在 $JENKINS_HOME/jobs 目录(一般是 /var/lib/jenkins/jobs )下,每个job对应一个目录。如果备份所有作业,只需备份 $JENKINS_HOME/jobs 目录;如果备份特定作业,只需备份 /var/lib/jenkins/jobs 下对应的目录。
导入已有作业
比如我们想将Jenkins1服务器上的作业 myjob Jenkins2服务器上。
-
拷贝Jenkins1的
myjob至Jenkins2服务器jenkins主目录的jobs$scp Jenkins1:/var/lib/jenkins/jobs/myjob Jenkins2:/var/lib/jenkins/jobs -
登陆Jenkins2服务,重新加载配置
Jenkins管理界面:
Jenkins->系统管理->读取设置如下:








网友评论