有可能在两个不同的詹金斯之间交换工作吗?我正在寻找一种输出/输入工作的方法。


当前回答

可能使用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

它对我来说很好,我习惯存储在我的版本控制系统中

其他回答

有一个叫Job Import plugin的插件可能就是你要找的。我用过。它确实存在从不允许匿名访问的服务器导入项目的问题。

完整性: 如果您有命令行访问这两个任务,您可以执行Khez已经提到的移动、复制和重命名Jenkins作业的过程。

转到Jenkins服务器的首页,点击页面底部的REST API:

创建工作

要创建一个新作业,将config.xml发送到这个URL,查询参数name=JOBNAME。你需要发送一个Content-Type: application/xml报头。如果创建成功,您将获得200状态代码,如果创建失败,则获得4xx/5xx代码。config.xml是Jenkins用于在文件系统中存储项目的格式,因此您可以在Jenkins主目录中看到它们的示例,或者通过从/job/JOBNAME/config.xml中检索现有作业的XML配置。

2021年,进出口过程很痛苦!!

如果你有shell访问两个jenkins实例:旧的和新的,遵循以下步骤来执行成功的作业迁移:

穿着你的旧内裤

在你的旧Jenkins里找到Jenkins家。通常/var/lib/jenkins.如果你使用bitnami: /opt/bitnami/jenkins 在Jenkins家中,进入工作文件夹 您应该看到带有作业名称的文件夹。在这些文件夹中,您只需要config.xml 备份所有需要的作业。只有文件夹和它的config.xml。还有很多其他文件不是必需的。

在你的新詹金斯:

找到詹金斯家 将作业(以前的备份)复制到jobs文件夹 确保这些新文件夹的所有者是用户“jenkins”。如果不使用这个:chown jenkins:jenkins /var/lib/jenkins -R 重启詹金斯 解析:选D

根据赞成票和评论的数量,我可以考虑创建一个新插件的可能性:)

可能使用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

它对我来说很好,我习惯存储在我的版本控制系统中

在我的Jenkins实例(版本1.548)中,配置文件位于:

/var/lib/jenkins/jobs/-the-project-name - / config . xml

属于jenkins用户和jenkins组,拥有644个权限。将文件复制到这里和从这里复制到这里应该可以工作。我没有尝试直接更改它,但已经从这个地方备份了配置,以防项目需要再次设置。