7 Jenkins Job迁移

news/2024/11/19 5:42:45/文章来源:https://www.cnblogs.com/david-cloud/p/18291640

在工作中可能会遇到这样的场景,即需要把一个Jenkins Master上的job迁移到另外一台Jenkins Master上,那怎么做比较好呢?

如果只是单独的一个job且这个job的设置很简单,这种情况下当然可以直接在新的Jenkins Master上直接创建job然后从旧的job拷贝下配置即可。但如果job很多,或者job的配置项较多那手动复制配置肯定是比较傻的行为。那我们现在来介绍下这种配置项较多、job比较多的情况下怎么来迁移这些job。

现在我搭建了两台Jenkins来进行说明。IP分别为192.168.9.9和192.168.9.8,现在我在.10上创建一个job,如test,然后进行如下配置

img

现在具体来看下如何将上面的配置的job从192.168.9.10的Jenkins上迁移到192.168.9.8的机器上。

Job Import Plugin导入

现在先介绍第一种方式,通过Job Import Plugin方式来进行job的迁移,这种方式比较方便,首先到新的Jenkins上,也就是192.168.9.8上,在192.168.9.8上插件管理里先安装下Job Import Plugin,如下所示:

img

安装完后进入“Manage Jenkins” -> "Configure System"下,找到Job Import Pluguin配置的地方,进行如下设置:

img

name: 这个可以任意命名,这里我命名成要拷贝的Jenkins的IP

Url: 指要从哪里拷贝的Jenkins的URL,现在我们要从192.168.9.10拷贝job,因此这里要设置成192.168.9.10的Jenkins的URL

Credentials:需要添加一个旧Jenkins的账号(也就是192.168.9.10的账号),没有添加的时候点击Add手动添加下,就可以像上面的截图一样下拉选择到这个账号了

设置完后点击保存下,回到Jenkins首页点击Job Import Plugin就可以进行Job的迁移了,如下所示:

img

在Job Import Plugin界面,下拉选择刚才添加的配置,然后点击Query按钮就可以搜索出配置的Jenkins下的job了,然后选择需要的job进行迁移导入即可:

img

img

因为有时候旧的Jenkins上的插件新Jenkins上未必有,因此可以根据实际情况勾选是否需要安装必要的插件,如上面的截图所示,需不需要覆盖已有的job也根据实际情况勾选下。导入成功会有如下的提示:

img

有了上面的提示后就可以会到新的Jenkins的首页,查看Job有没有成功进入,并进入导入的job查看设置有没有成功的复制过来,如下所示:

img

可以看到job及其设置成功的被导入到新的job了。

Job Import Pugin也支持多个job同时拷贝,如果旧的Job里有多个job,如上面的步骤里所示,query出来就有很多job可供选择,只需要勾选多个即可同时进行多个job的导入了。

img

Jenkins CLI方式导入

有时候在公司内部Jenkins部署到不同的网段里,不同网段间可能会限制无法相互访问,这种情况下通过Job Import Plugin进行job导入的方式就行不通了,这时候可以通过Jenkins CLI方式进行job配置导出,然后新Jenkins在根据导出的配置进行再导入操作,完成job的配置迁移 。下面我们来具体讲解下。

现到旧Jenkins下的Jenkins管理页面找到Jenkins CLI,如下所示:

img

点击进入Jenkins CLI,可以看到Jenkins命令行接口提供很多命令可以用来进行Jenkins的相关操作,可以看到有提供了get-job这样一个命令,这个命令可以将job的定义导出到xml的格式到输出流,这样我们可以通过这个命令将旧Jenkins上的job导出到外部文件,然后还可以看到有另外一个命令create-job,这个命令可以根据已有的xml配置文件进行job创建,那我们可以根据从旧job导出的job配置文件做为输入进行job的创建了。

首先在旧的Jenkins上的cli页面点击jenkins-cli.jar就可以下载这个jar到本地,如下所示:

img

接着点击下Jenkins右上角的账号,选择Configure,然后点击Show API Token,拷贝token,这个token可以用来进行配置导出的时候做为认证使用

img

img

在jenkins-cli.jar下载的根目录下执行如下命令进行job导出,这里我新建了个job,命名为test4,现在执行下如下命令进行test4这个job配置的导出:

 java -jar jenkins-cli.jar -s http://192.168.9.10:8080/jenkins -auth admin:493375c06bc0006a455005804796c989 get-job "test4" > test4.xml
 

http://192.168.9.10:8080/jenkins: 就Job的Jenkins地址

admin: 上面截图获取Show API Token下的User ID

**493375c06bc0006a455005804796c989:**上面截图获取API Token的值

test4: 需要导出配置的job名

test4.xml: 导出的文件的名称,可任意

根据实际情况替换下上面的四个值即可

执行完上面的命令就可以看到test4.xml文件生成了

img

接着在新的Jenkins下同样先下载下jenkins-cli.jar,然后将上面生成的test4.xml拷贝到新的Jenkins机器下,同样获取下新Jenkins登录账号的API Token和User ID,执行下如下命令就可以进行job导入了

java -jar jenkins-cli.jar -s http://192.168.9.8:8080/jenkins -auth admin:51964e7b89a427be5dd2a28f38c86eff create-job test4 <  test4.xml
 

记得将URL替换成新Jenkins的URL,User ID和token也替换下

上面的命令执行完后,就可以看到在新的Jenkins下新job被成功导入了

转载链接:https://cloud.tencent.com/developer/article/1470433

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/741111.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepViT:字节提出深层ViT的训练策略 | 2021 arxiv

作者发现深层ViT出现的注意力崩溃问题,提出了新颖的Re-attention机制来解决,计算量和内存开销都很少,在增加ViT深度时能够保持性能不断提高 来源:晓飞的算法工程笔记 公众号论文: DeepViT: Towards Deeper Vision Transformer论文地址:https://arxiv.org/abs/2103.11886 论…

4.7 在 VS Code 中校验 Jenkinsfile

在日常工作中,我经常需要创建或修改很多 Jenkinsfile,有时还会发生错误。这是一个非常繁琐的流程——修改 Jenkinsfile,提交、推送,然后等 Jenkins 提醒你少加了一个括号。 Command-line Pipeline Linter(https://jenkins.io/doc/book/pipeline/development/) 可以有效地减…

4.4 Jenkins共享库应用

由来与演进 在Jenkins 1.x中,对于job的配置大多是基于图形界面的,也就是说,要在GUI页面手动设置相关的job参数。 随着不同类型和用途的job越来越多,参数越来越复杂,难以有效地管理数量庞大的图形界面配置信息,也无法有效追踪和记录配置的更改。 在Jenkins 2.0中,基于Pip…

Franka libfranka 介绍

libfranka是 FCI 客户端的 C++ 实现。它处理与 Control 的网络通信,并提供接口以轻松实现以下功能:执行非实时命令来控制手并配置手臂参数。执行实时命令来运行您自己的 1 kHz 控制循环。读取机器人状态以 1 kHz 的频率获取传感器数据。访问模型库来计算所需的运动学和动态参…

Exchange被黑客利用做中继外发垃圾邮件问题分析

近期有用户反馈有大量非本域的邮件从自家服务器发出,还成功投递出来了,不过不用担心,到我们服务商这边被识破,全部拦截下来。 以下是用户自建服务器发出的垃圾邮件案例:以上信息只有ip是用户自建服务器的,发件人和邮件都非用户本人发送,可以看出域名都可以通过客户的服务…

vLLM与PagedAttention:全面概述

翻译自:https://medium.com/@abonia/vllm-and-pagedattention-a-comprehensive-overview-20046d8d0c61 简单、快速且经济的LLM服务vLLM是一个旨在提高大型语言模型(LLM)推理和服务效率与性能的库。由UC Berkeley开发,vLLM引入了PagedAttention,这是一种新颖的注意力算法,…

何时入场才是好时机

何时入场才是好时机 1.当一个股票进入明确的趋势状态后,他将自动的运作,前后一致的贯穿整个趋势过程的路线演变下去 2.当这轮运动开始的时候,开头几天你会注意到,伴随着价格的上涨,形成了非常巨大的成交量,随后将发生正常的回撤,在这个向下回落过程中,成交量远远小于前…

1.1 DevOps、CI、CD都是什么?

DevOps DevOps是Development和Operations的组合,是一种方法论,是一组过程、方法与系统的统称,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合。以期打破传统开发和运营之间的壁垒和鸿沟。DevOps是一种重视“软件开发人员(Dev)”和“IT运维技术人员…

1.2 Jenkins简介

简单介绍 Jenkinsopen in new window前身是Hudson,Jenkins是一款开源 CI&CD 软件,基于Java开发,用于自动化各种任务,包括构建、测试和部署软件。 Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。 Jenkins 项目产生两个发行线, 长期支持…

挂 CSDN,老问题了,现在开始盗我源码不管了

挂 CSDN,老问题了,现在开始盗我源码不管了,希望没有倒霉蛋来买,买了也别找我,我不维护这个项目了!挂壁链接:https://download.csdn.net/download/weixin_44087733/89352970 之前盗我文章,把我内置保护链接去掉,嵌广告事,我不挂你名不解决。好,挂出来好使了,我也没追…

grep: PCRE does not support \L, \l, \N{name}, \U, or \u

001、grep命令报错如下[root@PC1 test]# echo "你好世界" | grep -P [\u4e00-\u9fff]+ grep: PCRE does not support \L, \l, \N{name}, \U, or \u 002、解决方法(把U改为x;同时中间用中括号):[root@PC1 test]# echo "你好世界" | grep -P [\x{4e00}-…

2024春秋杯网络安全联赛夏季赛-PWN-Writeup

2024春秋杯网络安全联赛夏季赛-PWN-Writeup 只打了第一天,费了好大劲,终于三道都出了。Shuffled_Execution 保护全开,ida查看伪代码: int __fastcall main(int argc, const char **argv, const char **envp) {__int64 v3; // raxchar *s; // [rsp+28h] [rbp-18h]unsigned _…