有可能在两个不同的詹金斯之间交换工作吗?我正在寻找一种输出/输入工作的方法。
当前回答
在我的Jenkins实例(版本1.548)中,配置文件位于:
/var/lib/jenkins/jobs/-the-project-name - / config . xml
属于jenkins用户和jenkins组,拥有644个权限。将文件复制到这里和从这里复制到这里应该可以工作。我没有尝试直接更改它,但已经从这个地方备份了配置,以防项目需要再次设置。
其他回答
简单的php脚本为我工作。
Export: // add all job codes in the array $jobs = array("job1", "job2", "job3"); foreach ($jobs as $value) { fwrite(STDOUT, $value. " \n") or die("Unable to open file!"); $path = "http://server1:8080/jenkins/job/".$value."/config.xml"; $myfile = fopen($value.".xml", "w"); fwrite($myfile, file_get_contents($path)); fclose($myfile); } Import: <?php // add all job codes in the array $jobs = array("job1", "job2", "job3"); foreach ($arr as $value) { fwrite(STDOUT, $value. " \n") or die("Unable to open file!"); $cmd = "java -jar jenkins-cli.jar -s http://server2:8080/jenkins/ create-job ".$value." < ".$value.".xml"; echo exec($cmd); }
作业导入插件是这里从另一个Jenkins实例导入作业的简单方法。只需要提供源Jenkins实例的URL。Remote Jenkins URL可以接受以下任何类型的URL:
http://$JENKINS -获取远程实例上的所有作业 http://$JENKINS/job/$JOBNAME -找一份工作 http://$JENKINS/view/$VIEWNAME -获取特定视图中的所有作业
可能使用jenkins命令行是另一种选择,参见https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+CLI
create-job:通过将stdin读取为配置XML文件来创建一个新作业。 get-job:将作业定义XML转储到标准输出
所以你可以
java -jar jenkins-cli.jar -s http://server get-job myjob > myjob.xml
java -jar jenkins-cli.jar -s http://server create-job newmyjob < myjob.xml
它对我来说很好,我习惯存储在我的版本控制系统中
在web浏览器中访问:
http://[jenkinshost]/job/[jobname]/config.xml
只需将文件保存到磁盘即可。
在我的Jenkins实例(版本1.548)中,配置文件位于:
/var/lib/jenkins/jobs/-the-project-name - / config . xml
属于jenkins用户和jenkins组,拥有644个权限。将文件复制到这里和从这里复制到这里应该可以工作。我没有尝试直接更改它,但已经从这个地方备份了配置,以防项目需要再次设置。