Jenkins多节点复用的方法、系统及电子设备与流程

文档序号:32065116发布日期:2022-11-05 00:29阅读:183来源:国知局
Jenkins多节点复用的方法、系统及电子设备与流程
jenkins多节点复用的方法、系统及电子设备
技术领域
1.本发明是关于计算机领域,特别是关于一种jenkins多节点复用的方法、系统及电子设备。


背景技术:

2.jenkins是一款开源的cicd(持续集成,持续部署)软件,用于自动化各种任务,包括构建、测试和部署软件。在jenkins中,都是以任务为单位去完成一件事情的。一个常见的jenkins任务是由多个阶段组成的,每个阶段完成相对独立的工作,例如阶段1完成编译打包,阶段2完成部署测试等。jenkins为每个阶段选定一个代理来执行当前阶段的工作,当前阶段结束前该代理不可以被其他阶段或者任务使用。添加一个节点到jenkins后就会生成一个代理,代理就表示这个节点。
3.目前jenkins常用的复用是基于代理的,不同的阶段或者任务可以复用代理,但是jenkins没有办法在一个阶段里复用多个代理。如果需要在一个阶段里对多个代理进行操作,例如想在阶段2里选择3个代理用来部署一个存储集群,目前常用的做法是事先划分好多个集群,每个集群包含3个独立的节点,每个集群只将一个节点给添加到jenkins变成代理,jenkins选中这个代理就相当于选中代理所在的集群,然后在被选中的代理上通过ansible工具来控制整个集群。但是这种方式有个很大的弊端就是节点无法做到真正意义上的复用,例如集群1和集群2各有3个独立节点,如果要挑选6个节点出来测试,目前的方式只能把集群1和集群2先拆掉组成一个6节点集群,测完还要再拆开还原。
4.公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。


技术实现要素:

5.本发明的目的在于提供一种jenkins多节点复用的方法、系统及电子设备,解决现有技术中节点无法做到真正意义上的复用的问题。
6.为实现上述目的,本发明的实施例提供了一种jenkins多节点复用的方法,包括以下步骤,
7.添加多个节点至jenkins中,为每个节点生成的代理程序创建虚拟资源,将创建的虚拟资源组成虚拟资源池;
8.配置每个节点对应代理程序的虚拟资源的第一参数信息,以及配置每个节点代理程序的第二参数信息;
9.将每个节点的代理程序的虚拟资源的第一参数信息与对应节点的代理程序的第二参数信息进行绑定。
10.作为本发明的进一步改进,所述多个节点可以分布于同一集群中,也可以分布在多个集群中。
11.作为本发明的进一步改进,所述虚拟资源包括每个代理程序自带的硬件配置信息
表。
12.作为本发明的进一步改进,所述配置每个节点对应代理程序的虚拟资源的第一参数信息包括,
13.配置每个节点对应代理程序的虚拟资源的第一标签信息为每个代理程序对应节点的ip地址,配置虚拟资源的第二标签信息为每个代理程序对应节点的cpu架构信息;
14.所述配置每个节点代理程序的第二参数信息包括,
15.配置每个节点代理程序的第二参数信息为每个代理程序对应节点的ip地址。
16.作为本发明的进一步改进,所述第一参数信息包括第一标签信息和第二标签信息,其中第一标签信息为虚拟资源的name信息,第二标签信息为虚拟资源的lable信息,所述第二参数信息为每个代理程序的lable信息。
17.作为本发明的进一步改进,所述将每个节点的代理程序的虚拟资源的第一参数信息与对应节点的代理程序的第二参数信息进行绑定包括,
18.将每个节点的代理程序的虚拟资源的第一标签信息与对应节点的代理程序的第二参数信息进行绑定。
19.作为本发明的进一步改进,所述将每个节点的代理程序的虚拟资源的第一标签信息与对应节点的代理程序的第二参数信息进行绑定包括,
20.将每个节点的代理程序的虚拟资源的name信息中ip地址与对应节点的代理程序的lable信息中ip地址进行绑定。
21.作为本发明的进一步改进,所述绑定途径包括通过对应节点的绑定网口、raid卡,nvme ssd进行绑定。
22.本发明还提供了一种jenkins多节点复用的方法,包括以下步骤,
23.添加多个节点至jenkins中,为每个节点生成的代理程序创建虚拟资源,将创建的虚拟资源组成虚拟资源池;
24.配置每个节点对应代理程序的虚拟资源的第一参数信息,以及配置每个节点代理程序的第二参数信息;
25.将每个节点的代理程序的虚拟资源的第一参数信息与对应节点的代理程序的第二参数信息进行绑定;
26.配置lock命令参数,锁定需执行操作的目标节点组。
27.作为本发明的进一步改进,所述配置lock命令参数包括,
28.配置lock命令参数为lock(lable:cpu架构类型,variable:ips,quantity:节点数),其中ips存放目标节点的ip地址。
29.作为本发明的进一步改进,所述锁定需执行操作的目标节点组包括,
30.lockable resource插件执行lock命令执行lock命令,根据lock命令中配置参数的cpu架构类型、ips、节点数量获取需执行操作的目标节点代理程序的虚拟资源锁定,jenkins复用每个目标节点对应的代理程序对每个目标节点执行操作。
31.作为本发明的进一步改进,所述jenkins复用每个目标节点对应的代理程序对每个目标节点执行操作包括,
32.jenkins选中需复用的目标节点组中全部目标节点对应的代理程序,查询每个代理程序中硬件配置信息表,确定对目标节点执行操作需占用的硬件资源。
33.本发明还提供了一种jenkins多节点复用的系统,该系统包括,
34.lockable resources插件,用于读取并执行lock命令,锁定目标节点对应代理程序的虚拟资源,
35.配置模块,用于配置代理程序agent以及代理程序创建虚拟资源的参数信息,
36.代理程序agent,用于执行对应目标节点需进行的操作,
37.绑定模块,用于将每个节点的代理程序的虚拟资源的第一参数信息与对应节点的代理程序的第二参数信息进行绑定。
38.本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述jenkins多节点复用的方法。
39.与现有技术相比,根据本发明实施方式的jenkins多节点复用的方法、系统及电子设备,通过对虚拟资源以及对应的代理进程配置标签信息,在配置标签信息的过程中,将虚拟资源的name信息和代理进程的lable信息均设置为其对应节点的ip地址,再通过绑定的方式,将该两者信息进行绑定,如此建立了虚拟资源
‑‑‑
代理进程
‑‑‑
目标节点的映射关系,如此当需要开始同时对多个目标节点进行操作(例如测试)时,可以通过配置lock命令信息,接着lockable resource插件执行lock命名锁定目标节点对应代理进程agent的形成虚拟资源池中的虚拟资源,将多个目标节点同时纳入待操作的节点组/池,此时jenkins就可以实现选中多个agent分别对不同的目标节点进行操作,实现了真正意义上的复用。
附图说明
40.图1是根据本发明一实施方式的jenkins多节点复用的方法的流程图;
41.图2是根据本发明一实施方式的jenkins多节点复用的方法的插件示意图1;
42.图3是根据本发明一实施方式的jenkins多节点复用的方法的插件示意图2;
43.图4是根据本发明一实施方式的jenkins多节点复用的方法的插件示意图3;
44.图5是根据本发明一实施方式的jenkins多节点复用的方法的示例图;
45.图6是根据本发明一实施方式的jenkins多节点复用的装置的结构图;
46.图7是根据本发明一实施方式的jenkins多节点复用的计算设备的硬件结构图。
具体实施方式
47.下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
48.除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
49.以下结合附图,详细说明本发明各实施例提供的技术方案。
50.实施例1
51.本实施方式提供了一种jenkins多节点复用的方法,包括以下步骤,
52.s11、添加多个节点至jenkins中,为每个节点生成的代理程序创建虚拟资源,将创建的虚拟资源组成虚拟资源池。
53.在本实施方式中,设定跨集群的应用场景,在集群a中有4个节点,在集群b中也有4个节点,当然在其他扩展应用场景中,集群的数量可以为两个以上,每个集群中节点数量同样也不受限制。而为了能够通过jenkins软件去针对集群a和b下面的多个节点同时执行操作任务时,采用lockable resource插件将多个节点的代理程序agent的虚拟资源进行锁定。在背景技术中已做介绍,当把一个节点添加至jenkins中时,会自动生成一个代理程序agent,用于后续对该节点执行操作任务。在本实施方式中,先将集群中的全部节点添加至jenkins中,每个节点会自动生成一个代理程序agent,接着给每个代理程序agent创建虚拟资源,然后把每个节点代理程序创建的虚拟资源组成虚拟资源池,接下来的思路就是通过lockable resource插件去锁定虚拟资源池中目标节点代理程序对应的虚拟资源,从而实现jenkins复用多个agent的目的。
54.在本实施方式中创建的代理程序agent的虚拟资源包括每个代理程序自带的硬件配置信息表,而在执行具体操作之前,可以根据实际需求手动编辑硬件配置信息表,在jenkins选中节点的代理程序agent之后,查询硬件配置信息表来确定接下来执行任务操作所需要配置的硬件。
55.s12、配置每个节点对应代理程序锁定的虚拟资源的第一参数信息,以及配置每个节点代理程序的第二参数信息。
56.在本实施方式中,为每个代理程序及其被锁定的虚拟资源进行打标签,其中虚拟资源包含了第一参数信息,代理程序包含了第二标签信息。具体而言,可以在节点生成代理程序agent,然后创建其虚拟资源的时候,即配置其第一参数信息,比如在其第一标签信息name信息配置为其对应代理进程所在节点的ip地址,第二标签信息lable信息配置为其对应代理进程所在节点的cpu架构信息。而在生成代理程序的时候,同时配置代理程序agent的第二参数信息lable信息也为其对应节点的ip地址。如此,经过配置之后的代理程序及其虚拟资源的参数信息中包含了关联的信息,在本实施方式中,为了方便将信息关联,且该关联信息在整个集群中唯一,优选采用代理程序所对应节点的ip地址作为关联信息。
57.s13、将每个节点的代理程序被锁定的虚拟资源的第一参数信息与对应节点的代理程序的第二参数信息进行绑定。
58.在配置好代理程序及其被锁定的虚拟资源的参数信息之后,还需要在映射关系上将其绑定,在具体应用场景中,绑定的方式有多种,可以根据各个节点配置选择一种方式进行绑定,例如,当有部分节点配置有绑定网口时,可以通过对应节点下该绑定网口将虚拟资源与其对应的代理程序的关联配置信息进行绑定,在本市实施方式中即通过绑定网口将被锁定虚拟资源的第一标签信息(name信息)与其对应代理程序的第二参数信息(lable信息)进行绑定,由于两者配置的信息都为该代理程序对应的节点ip地址,因此在后续执行任务操作的时候,jenkins通过lock命令里面配置的变量信息(需执行任务节点的ip地址)就可以锁定配置有跟节点ip地址相同信息的代理程序以及被锁定的虚拟资源,所以通过上述步骤,实现了节点
‑‑‑
代理程序
‑‑‑
虚拟资源类似于映射链的组合关系。
59.实施例2
60.本实施方式进一步的提供了一种jenkins多节点复用的方法,具体实现步骤如下:
61.s21、通过lockable resources插件锁定多个节点对应代理程序的虚拟资源,组成虚拟资源池。
62.在本实施方式中,设定跨集群的应用场景,在集群a中有3个节点,该3个节点的ip地址和cpu架构信息为:
63.节点a(cpu架构:x64,ip地址:1.0.0.0)
64.节点b(cpu架构:x64,ip地址:1.0.0.1)
65.节点c(cpu架构:arm,ip地址:1.0.0.2)
66.在集群b中也有3个节点,该3个节点的ip地址和cpu架构信息为:
67.节点d(cpu架构:x64,ip地址:2.0.0.0)
68.节点e(cpu架构:arm,ip地址:2.0.0.1)
69.节点f(cpu架构:arm,ip地址:2.0.0.2)
70.为了能够通过jenkins软件去针对集群a和b下面的6个节点同时执行操作任务时,首先采用lockable resource插件将多个节点的代理程序agent的虚拟资源进行锁定,形成虚拟资源池。在背景技术中已做介绍,当把一个节点添加至jenkins中时,会自动生成一个代理程序agent,用于后续对该节点执行操作任务。在本发明中的思路就是首先通过jenkins自带的lockable resource插件提前先将自动生成的各个添加至jenkins的节点上的代理程序agent的虚拟资源锁定,组成虚拟资源池。
71.在本实施方式中被锁定的虚拟资源包括每个代理程序自带的硬件配置信息表,而在执行具体操作之前,可以根据实际需求手动编辑硬件配置信息表,在jenkins选中节点的代理程序agent之后,查询硬件配置信息表来确定接下来执行任务操作所需要配置的硬件。
72.例如节点a的硬件配置信息表可以配置为:
[0073][0074][0075]
在本实施方式中,通过lockable resource插件锁定集群a、集群b中所有节点(共6个节点)的虚拟资源,组成虚拟资源池。
[0076]
s22、配置每个节点对应代理程序锁定的虚拟资源的第一参数信息,以及配置每个
节点代理程序的第二参数信息。
[0077]
在本实施方式中,为每个代理程序及其被锁定的虚拟资源进行打标签,其中虚拟资源包含了第一参数信息,代理程序包含了第二标签信息。具体而言,可以在节点生成代理程序agent,然后创建其虚拟资源的时候,即配置其第一参数信息,比如在其第一标签信息name信息配置为其对应代理进程所在节点的ip地址,第二标签信息lable信息配置为其对应代理进程所在节点的cpu架构信息。而在生成代理程序的时候,同时配置代理程序agent的第二参数信息lable信息也为其对应节点的ip地址。如此,经过配置之后的代理程序及其虚拟资源的参数信息中包含了关联的信息,在本实施方式中,为了方便将信息关联,且该关联信息在整个集群中唯一,优选采用代理程序所对应节点的ip地址作为关联信息。
[0078]
具体地,为了方便描述,将节点a的代理程序命名为agent a,被锁定的虚拟资源命名为resource a,节点b的代理程序命名为agent b,被锁定的虚拟资源命名为resource b,以此类推,那通过上述打标签的方式对各个节点的代理程序及被锁定的虚拟资源进行配置之后的信息配置表如下:
[0079]
resource a(name:1.0.0.0,lable:x64)
[0080]
resource b(name:1.0.0.1,lable:x64)
[0081]
resource c(name:1.0.0.2,lable:x64)
[0082]
resource d(name:2.0.0.0,lable:x64)
[0083]
resource e(name:2.0.0.1,lable:x64)
[0084]
resource f(name:2.0.0.2,lable:x64)
[0085]
agent a(lable:1.0.0.0)
[0086]
agent b(lable:1.0.0.1)
[0087]
agent c(lable:1.0.0.2)
[0088]
agent d(lable:2.0.0.0)
[0089]
agent e(lable:2.0.0.1)
[0090]
agent f(lable:2.0.0.2)
[0091]
s23、将每个节点的代理程序被锁定的虚拟资源的第一参数信息与对应节点的代理程序的第二参数信息进行绑定。
[0092]
在配置好代理程序及其被锁定的虚拟资源的参数信息之后,还需要在映射关系上将其绑定,在具体应用场景中,绑定的方式有多种,可以根据各个节点配置选择一种方式进行绑定,例如,当有部分节点配置有绑定网口时,可以通过对应节点下该绑定网口将虚拟资源与其对应的代理程序的关联配置信息进行绑定,在本市实施方式中即通过绑定网口将被锁定虚拟资源的第一标签信息(name信息)与其对应代理程序的第二参数信息(lable信息)进行绑定,由于两者配置的信息都为该代理程序对应的节点ip地址,因此在后续执行任务操作的时候,jenkins通过lock命令里面配置的变量信息(需执行任务节点的ip地址)就可以锁定配置有跟节点ip地址相同信息的代理程序以及被锁定的虚拟资源,所以通过上述步骤,实现了节点
‑‑‑
代理程序
‑‑‑
虚拟资源类似于映射链的组合关系。
[0093]
由于jenkins去哪个节点执行任务操作是通过识别agent中label信息来决定的,因此通过上述配置方式可以让jenkins可以通过agent中lable信息中的ip地址获取到对应的节点,而另一方面通过将agent的lable信息与resource的name信息绑定,jenkins可以查
询对应agent配置的硬件配置信息表,比如对于节点a而言,通过上述方式,jenkins获取的agent、目标节点、resource为一一对应的关系,并且节点a、agent a、resource a与节点b、agent b、resource b彼此隔离、互不干扰,可以实现任务的并发,这样对于jenkins选中多个节点需同时执行任务操作时,就可以同时复用多个目标节点的代理程序agent进行相应的任务操作,真正意义上实现了复用。
[0094]
s24、配置lock命令参数,锁定需执行操作的目标节点组。
[0095]
在本实施方式中,当需要选中3个节点执行任务操作时,可以通过在jenkins中配置lock命令来锁定需执行操作的目标节点组。具体而言,比如接下来需对集群a中的节点a、节点b以及集群b中的节点d执行任务操作,可以如下来配置lock命令:
[0096]
lock(lable:x64,variable:ips,quantity:3)
[0097]
其中lable表示被锁定节点的cpu架构类型,variable为ips变量,里面存放的为选中节点的ip地址(在本实施方式中即节点a、节点b、节点d的ip地址1.0.0.0、1.0.0.1、2.0.0.0),quantity表示选中节点的数量,因此通过执行该lock命名之后,jenkins就可以选中节点a、节点b、节点d,并同时复用对应的agent执行相应的任务操作。
[0098]
如图6所示,介绍根据本发明具体实施方式的jenkins多节点复用的装置。
[0099]
在本发明的实施方式中,jenkins多节点复用的装置包括配置模块601和任务模块602。
[0100]
配置模块601,用于为节点创建虚拟资源,并将节点添加到jenkins中作为代理。
[0101]
任务模块602,用于根据接收到的任务从jenkins中选择对应的节点,并根据所选节点的虚拟资源对所选节点加锁,以执行任务。
[0102]
配置模块601还用于:配置虚拟资源的标签;以及配置虚拟资源的名称,其中,虚拟资源的名称为节点的ip地址。
[0103]
配置模块601还用于:在将节点添加到jenkins中作为代理时,将代理的标签配置为节点的ip地址,并配置代理的硬件配置信息表。
[0104]
在本实施例中,虚拟资源的标签包括:目标架构、任务对应的端口和固态硬盘。
[0105]
图7示出了根据本说明书的实施例的用于jenkins多节点复用的计算设备70的硬件结构图。如图7所示,计算设备70可以包括至少一个处理器701、存储器702(例如非易失性存储器)、内存703和通信接口704,并且至少一个处理器701、存储器702、内存703和通信接口704经由总线705连接在一起。至少一个处理器701执行在存储器702中存储或编码的至少一个计算机可读指令。
[0106]
应该理解,在存储器702中存储的计算机可执行指令当执行时使得至少一个处理器701进行本说明书的各个实施例中以上结合图1-7描述的各种操作和功能。
[0107]
在本说明书的实施例中,计算设备70可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(pda)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。
[0108]
根据一个实施例,提供了一种比如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-7描述的各种操作和功能。具体地,可以提供配有可读存储
介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
[0109]
根据本发明实施方式的jenkins多节点复用的方法及应用,其能够通过为每个节点创建对应的虚拟资源,并将具有虚拟资源的节点全部加入jenkins中组成代理池,使得在某一阶段或某一任务执行时,按需从代理池中获取节点,进而实现了多节点真正意义上的复用,不需要手动合并和拆分集群。
[0110]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0111]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0112]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0113]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0114]
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1