有可能在两个不同的詹金斯之间交换工作吗?我正在寻找一种输出/输入工作的方法。
当前回答
如果你已经导出了config.xml文件,那么使用同样的文件导入:
curl -k -X POST 'https:///<user>:<token>@<jenkins_url>/createItem?name=<job_name>' --header "Content-Type: application/xml" -d @config.xml
我正在通过HTTPS连接,并使用-k禁用证书验证。
这是如何在Jenkins上生成用户api令牌。 如果单击Jenkins实例右下角的同名链接,就可以看到Jenkins REST API的详细信息。
其他回答
在web浏览器中访问:
http://[jenkinshost]/job/[jobname]/config.xml
只需将文件保存到磁盘即可。
最简单的方法,直接访问机器是复制作业文件夹从第一个jenkins到另一个(你可以排除工作区-工作区文件夹),因为整个作业配置存储在磁盘上的xml文件(config.xml在作业路径文件夹)
然后在新的jenkins中只需重新加载配置中的全局设置(管理员权限是必需的)就应该足够了,如果不行,那么你就需要重新启动jenkins工具。
另一种方法是使用上面提到的插件。
编辑:
在这种情况下,你可能也可以排除模块文件夹和管道以及共享库文件夹,如workspace@libs
一行程序:
$ curl -s http://OLD_JENKINS/job/JOBNAME/config.xml | curl -X POST 'http://NEW_JENKINS/createItem?name=JOBNAME' --header "Content-Type: application/xml" -d @-
身份验证:
$ curl -s http:///<USER>:<API_TOKEN>@OLD_JENKINS/job/JOBNAME/config.xml | curl -X POST 'http:///<USER>:<API_TOKEN>@NEW_JENKINS/createItem?name=JOBNAME' --header "Content-Type: application/xml" -d @-
使用Crumb,如果CSRF是活动的(参见这里的详细信息):
获取面包屑:
$ CRUMB_OLD=$(curl -s 'http://<USER>:<API_TOKEN>@OLD_JENKINS/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
$ CRUMB_NEW=$(curl -s 'http://<USER>:<API_TOKEN>@NEW_JENKINS/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
使用-H crumb涂抹crumb:
$ curl -s -H $CRUMB_OLD http:///<USER>:<API_TOKEN>@OLD_JENKINS/job/JOBNAME/config.xml | curl -X POST -H $CRUMB_NEW 'http:///<USER>:<API_TOKEN>@NEW_JENKINS/createItem?name=JOBNAME' --header "Content-Type: application/xml" -d @-
Jenkins有一个相当不错的wiki,尽管对于CI软件新手来说很难阅读……
它们为在服务器之间移动作业提供了一种简单的解决方案
诀窍可能是需要从Jenkins Configuration Page重新加载配置。
更新2020.03.10
詹金科学的格局已经改变了很多…我已经使用工作DSL有一段时间了。 我们有一个SEED Job,它生成其余的Job。
这有助于我们在需要的时候为Jenkins服务器重新创建或移动:) 您还可以为这些文件设置版本,以获得更好的可维护性!
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
根据赞成票和评论的数量,我可以考虑创建一个新插件的可能性:)