有可能在两个不同的詹金斯之间交换工作吗?我正在寻找一种输出/输入工作的方法。
当前回答
这并不适用于现有的工作,但是有Jenkins工作生成器。
这允许我们将作业定义保存在yaml文件和git repo中,这是非常可移植的。
其他回答
有一个叫Job Import plugin的插件可能就是你要找的。我用过。它确实存在从不允许匿名访问的服务器导入项目的问题。
完整性: 如果您有命令行访问这两个任务,您可以执行Khez已经提到的移动、复制和重命名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
根据赞成票和评论的数量,我可以考虑创建一个新插件的可能性:)
多亏了Larry Cai的回答,我成功地创建了一个脚本来备份我所有的Jenkins作业。我创建了一个每周运行这个的作业。如果有人发现它有用,这里是:
#!/bin/bash
#IFS for jobs with spaces.
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for i in $(java -jar /run/jenkins/war/WEB-INF/jenkins-cli.jar -s http://server:8080/ list-jobs);
do
java -jar /run/jenkins/war/WEB-INF/jenkins-cli.jar -s http://server:8080/ get-job ${i} > ${i}.xml;
done
IFS=$SAVEIFS
mkdir deploy
tar cvfj "jenkins-jobs.tar.bz2" ./*.xml
下载插件名非常简单
作业导入插件
输入Remote Jenkins服务器的URL,它将自动导入作业
作业导入插件是这里从另一个Jenkins实例导入作业的简单方法。只需要提供源Jenkins实例的URL。Remote Jenkins URL可以接受以下任何类型的URL:
http://$JENKINS -获取远程实例上的所有作业 http://$JENKINS/job/$JOBNAME -找一份工作 http://$JENKINS/view/$VIEWNAME -获取特定视图中的所有作业
推荐文章
- 如何从命令行重置Jenkins安全设置?
- 如何在不重启服务器的情况下停止詹金斯上不可阻挡的僵尸工作?
- Jenkins:注释可以添加到Jenkins文件中吗?
- 如何在Jenkins中设置发件人地址?
- 为某些代码关闭声纳
- 如何在Jenkins中设置环境变量?
- 我如何在詹金斯克隆一份工作?
- 如何在本地测试对詹金斯文件所做的更改?
- 在Git中更改电子邮件地址
- 从docker内部运行docker是否可以?
- 在Jenkins输出/导入工作
- 我如何安排在詹金斯的工作?
- 如何在哈德森和詹金斯之间做出选择?
- Docker:在unix:///var/run/ Docker .sock试图连接到Docker守护进程套接字时被拒绝权限
- 参数Error - trustAnchors必须非空