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->系统管理->读取设置
如下:
网友评论