CN106802832B - Jenkins节点状态管理方法及装置 - Google Patents
Jenkins节点状态管理方法及装置 Download PDFInfo
- Publication number
- CN106802832B CN106802832B CN201710010707.4A CN201710010707A CN106802832B CN 106802832 B CN106802832 B CN 106802832B CN 201710010707 A CN201710010707 A CN 201710010707A CN 106802832 B CN106802832 B CN 106802832B
- Authority
- CN
- China
- Prior art keywords
- jenkins
- node
- connection
- server
- slave node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本公开是关于一种Jenkins节点状态管理方法及装置,其中,Jenkins从节点上配置有一查询脚本;该方法包括:通过一服务器接收一前端模块发送的查询Jenkins从节点状态的查询请求;响应查询请求,建立服务器与Jenkins从节点间的通信;通过服务器控制Jenkins从节点上配置的查询脚本以查询是否存在Jenkins主节点与Jenkins从节点的连接进程;当查询到Jenkins主节点与Jenkins从节点的连接进程时,确定Jenkins从节点处于连接状态;当未查询到Jenkins主节点与Jenkins从节点的连接进程时,确定Jenkins从节点处于断开状态。该方法节省了时间成本。
Description
技术领域
本公开涉及计算机软件技术领域,具体而言,涉及一种Jenkins节点状态管理方法以及一种Jenkins节点状态管理装置。
背景技术
Jenkins是基于Java开发的一种持续集成工具,可以用来提供一个开放易用的软件平台,使得软件的持续集成变成可能。Jenkins中可以包括Master(主节点,提供Web接口让用户来管理Job的平台)和Slave(从节点,分布式构建中配置的节点)。
目前,在查看Slave的连接状态时,可以先登录Jenkins的网站,然后再选择指定的Slave去查看;当发现Slave处于断开连接状态时,首先需要判断该断开的Slave是否需要重新连接;若需要重新连接,则需要根据Slave部署方式的不同,再登录Slave客户端去执行特定的Java命令才能重新连接。目前,Jenkins的Master(主节点)和Slave(从节点)的连接方式通常可以分为如下两种。其中:
第一种连接方式可以包括:Master通过SSH连接Slave;在这种连接方式中,Master必须有Slave机器的账号,可以将Master上生成的公钥配置在Slave机器上。
第二种连接方式可以包括:Slave通过JNLP(Java提供的一种可以通过浏览器直接执行Java应用程序的途径,可以直接通过一个网页上的URL连接打开一个Java应用程序)方式主动连接Master,在这种连接方式中,Master登录到Slave机器上后,可以运行Master提供的Java–jar命令然后将Slave连接到Master上。
但是上述连接方式存在如下缺点:第一,Slave连接状态查看步骤繁琐。在登录Jenkins网站时,需要用户使用较高权限的账户才能登录,因此登录非常的不便;并且,Jenkins配置了许多的Slave,要从中找到目标Slave去查看其状态,需要耗费大量的时间成本;第二,Slave断线重连限制较多,需要有Jenkins的较高权限账户和Slave的用户名密码才能连接;但是一般的用户并没有这些权限,因此连接起来也非常的不便。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种Jenkins节点状态管理方法以及一种Jenkins节点状态管理装置,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
根据本公开的一个方面,提供一种Jenkins节点状态管理方法,Jenkins从节点上配置有一查询脚本;所述方法包括:
通过一服务器接收一前端模块发送的查询所述Jenkins从节点状态的查询请求;
响应所述查询请求,建立所述服务器与所述Jenkins从节点间的通信;
通过所述服务器控制所述Jenkins从节点上配置的所述查询脚本以查询是否存在Jenkins主节点与所述Jenkins从节点的连接进程;
当查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时,确定所述Jenkins从节点处于连接状态;
当未查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时,确定所述Jenkins从节点处于断开状态。
在本公开的一种示例性实施例中,Jenkins从节点上配置有一连接脚本;其中,在所述当未查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时后还包括:
通过一服务器接收一前端模块发送的连接所述Jenkins从节点状态的连接请求;
响应所述连接请求,建立所述服务器与所述Jenkins从节点间的通信;
通过所述服务器控制所述Jenkins从节点上配置的所述连接脚本以启动所述Jenkins主节点与所述Jenkins从节点间的所述连接进程。
在本公开的一种示例性实施例中,所述Jenkins节点状态管理方法还包括:
判断所述连接进程是否启动成功;以及
在判断所述连接进程成功启动时,确定所述Jenkins从节点处于连接状态并将连接结果发送给所述前端模块。
在本公开的一种示例性实施例中,所述Jenkins节点状态管理方法还包括:
生成一包括***公钥以及***私钥的密钥对并将所述***公钥配置到与所述Jenkins从节点关联的用户端目录文件中;
当响应所述查询请求时,所述服务器通过所述***私钥对所述查询请求进程进行验证;
在所述查询请求进程通过验证时,通过安全外壳协议建立所述Jenkins从节点与所述服务器间的通信。
在本公开的一种示例性实施例中,所述服务器是基于Flask实现的轻量级Web服务器。
根据本公开的一个方面,提供一种Jenkins节点状态管理装置,Jenkins从节点上配置有一查询脚本;所述装置包括:
状态查询请求模块:用于通过一服务器接收一前端模块发送的查询所述Jenkins从节点状态的查询请求;
第一通信建立模块:用于响应所述查询请求,建立所述服务器与所述Jenkins从节点间的通信;
连接进程查询模块:用于通过所述服务器控制所述Jenkins从节点上配置的所述查询脚本以查询是否存在Jenkins主节点与所述Jenkins从节点的连接进程;
连接状态确定模块:用于当查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时,确定所述Jenkins从节点处于连接状态;
断开状态确定模块:用于当未查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时,确定所述Jenkins从节点处于断开状态。
在本公开的一种示例性实施例中,Jenkins从节点上配置有一连接脚本;其中,在所述当未查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时后还包括:
通过一服务器接收一前端模块发送的连接所述Jenkins从节点状态的连接请求;
响应所述连接请求,建立所述服务器与所述Jenkins从节点间的通信;
通过所述服务器控制所述Jenkins从节点上配置的所述连接脚本以启动所述Jenkins主节点与所述Jenkins从节点间的所述连接进程。
在本公开的一种示例性实施例中,所述Jenkins节点状态管理装置还包括:
连接进程判断模块:用于判断所述连接进程是否启动成功;
连接结果发送模块:用于在判断所述连接进程成功启动时,确定所述Jenkins从节点处于连接状态并将连接结果发送给所述前端模块。
在本公开的一种示例性实施例中,所述Jenkins节点状态管理装置还包括:
密钥生成模块:用于生成一包括***公钥以及***私钥的密钥对并将所述***公钥配置到与所述Jenkins从节点关联的用户端目录文件中;
进程验证模块:用于当响应所述查询请求时,所述服务器通过所述***私钥对所述查询请求进程进行验证;
第二通信建立模块:用于在所述查询请求进程通过验证时,通过安全外壳协议建立所述Jenkins从节点与所述服务器间的通信。
在本公开的一种示例性实施例中,所述服务器是基于Flask实现的轻量级Web服务器。
本公开一种Jenkins节点状态管理方法及装置,通过为Jenkins从节点配置一查询脚本,当需要查询Jenkins从节点状态时,先建立服务器与Jenkins从节点间的通信,然后通过服务器控制Jenkins从节点上配置的查询脚本以查询是否存在Jenkins主节点与所述Jenkins从节点的连接进程,进而判断Jenkins主节点是否处于连接状态;一方面,通过为Jenkins从节点配置查询脚本,当需要查询Jenkins从节点的当前连接状态时,可以直接通过服务器控制Jenkins从节点上配置的查询脚本进行查询,解决现有技术方案中需要先登录Jenkins的网站,然后再选择指定的节点去查看的问题,简化了查询步骤,节省了时间成本;另一方面,不再需要获取登录Jenkins网站的最高权限就可以查询Jenkins从节点的连接状态,降低了查询的繁琐程度,提高了查询速度。
本公开一种Jenkins节点状态管理方法及装置,通过为Jenkins从节点配置一连接脚本,当Jenkins节点处于断开状态时,可以通过服务器控制Jenkins从节点上配置的连接脚本执行连接进程,进而可以远程连接Jenkins从节点,节省了技术人员的人力成本和时间成本,同时也提高了连接效率。
本公开一种Jenkins节点状态管理方法及装置,通过生成密钥对并将密钥对中的***公钥配置到与Jenkins从节点关联的用户端目录文件中;当服务器响应查询请求时,先通过密钥对中的***私钥对查询请求进程进行验证,验证通过后再进行查询,提高了***的安全性,同时也提升了用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出一种Jenkins节点状态管理方法的流程图。
图2示意性示出另一种Jenkins节点状态管理方法的流程图。
图3示意性示出另一种Jenkins节点状态管理方法的流程图。
图4示意性示出另一种Jenkins节点状态管理方法的流程图。
图5示意性示出一种Jenkins节点状态管理装置的框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本示例实施方式中首先提供了一种Jenkins节点状态管理方法,其中,Jenkins从节点上配置有一查询脚本。参考图1所示,该Jenkins节点状态管理方法可以包括如下步骤:
步骤S110.通过一服务器接收一前端模块发送的查询所述Jenkins从节点状态的查询请求。
步骤S120.响应所述查询请求,建立所述服务器与所述Jenkins从节点间的通信。
步骤S130.通过所述服务器控制所述Jenkins从节点上配置的所述查询脚本以查询是否存在Jenkins主节点与所述Jenkins从节点的连接进程。
步骤S140.当查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时,确定所述Jenkins从节点处于连接状态。
步骤S150.当未查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时,确定所述Jenkins从节点处于断开状态。
上述Jenkins节点状态管理方法中,一方面,通过为Jenkins从节点配置查询脚本,当需要查询Jenkins从节点的当前连接状态时,可以直接通过服务器控制Jenkins从节点上配置的查询脚本进行查询,解决现有技术方案中需要先登录Jenkins的网站,然后再选择指定的节点去查看的问题,简化了查询步骤,节省了时间成本;另一方面,不再需要获取登录Jenkins网站的最高权限就可以查询Jenkins从节点的连接状态,降低了查询的繁琐程度,提高了查询速度。
下面,将对本示例实施方式中上述Jenkins节点状态管理方法的各步骤进行详细的说明。
在步骤S110中,通过一服务器接收一前端模块发送的查询所述Jenkins从节点状态的查询请求。
在本示例实施方式中,上述服务器可以包括基于Flask实现的轻量级Web服务器,也可以包括Internet信息服务器或者Ngnix服务器等等,本示例实施方式对此不作特殊限制;其中,Flask是一种使用Python编写的轻量级Web框架;Flask也可以被称为“Microframework”,因为它使用简单的核心,用extension增加其他功能。在本示例中,通过服务器(Flask)接收前端模块(前端页面)发送的查询Jenkins从节点(Slave)状态的查询请求,该查询请求可以通过AJAX(Asynchronous Javascript And XML,异步JavaScript和XML)方式进行发送。此外,在本公开的其他示例性实施例中,也可以根据实际情况以其他的方式发送上述查询请求,本示例性实施例中对此不做特殊限定。
在步骤S120中,响应所述查询请求,建立所述服务器与所述Jenkins从节点间的通信。
在本示例实施方式中,响应上述查询Jenkins从节点(Slave)状态的查询请求,然后建立服务器(Flask)与Jenkins从节点(Slave)间的通信;服务器(Flask)与Jenkins从节点(Slave)间的通信可以通过安全外壳协议(SSH,Secure Shell)进行建立,也可通过TCP/IP或者Socket进行建立,本示例实施方式对此不做特殊限制。
在步骤S130中,通过所述服务器控制所述Jenkins从节点上配置的所述查询脚本以查询是否存在Jenkins主节点与所述Jenkins从节点的连接进程。
在本示例实施方式中,上述查询脚本可以是使用一种特定的描述性语言(例如,可以是Java)并依据一定的格式编写的可执行文件(可供Flask查询Slave的当前连接状态),也可以根据实际情况进行其他的定义,例如可以是文字命令等等,本示例对此不作特殊限制。在本示例中,通过Flask控制Slave上配置的查询脚本来查询Jenkins主节点(Master)与Jenkins从节点(Slave)间是否存在连接进程并根据连接进程的存在与否来判断Jenkins从节点(Slave)的当前状态。其中,进程是操作***结构的基础,是程序的基本执行实体;上述连接进程可以被理解为连接Master与Slave的程序的基本执行实体。查询的具体执行代码例如可以如下所示:
在步骤S140中,当查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时,确定所述Jenkins从节点处于连接状态。举例而言:
当查询到Master与Slave的连接进程时,则可以确定Slave与Master处于连接状态。
在步骤S150中,当未查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时,确定所述Jenkins从节点处于断开状态。举例而言:
当未查询到Master与Slave的连接进程时,则可以确定Slave与Master处于断开状态。
在本示例实施例的另一种实施方式中,当未查询到Master与Slave的连接进程时,确定Slave与Master处于断开状态,则可以对Slave重新连接。其中,Slave上配置有一连接脚本,参考图2所示,对Slave重新连接可以包括步骤S210~S230。其中:
在步骤S210中,通过一服务器接收一前端模块发送的连接所述Jenkins从节点状态的连接请求。详细而言:
通过服务器(Flask)接收前端模块(前端页面)发送的连接Jenkins从节点(Slave)状态的连接请求,该连接请求可以通过AJAX(Asynchronous Javascript And XML,异步JavaScript和XML)方式进行发送。
在步骤S220中,响应所述连接请求,建立所述服务器与所述Jenkins从节点间的通信。
在本示例实施方式中,响应上述连接Jenkins从节点(Slave)状态的连接请求,然后建立服务器(Flask)与Jenkins从节点(Slave)间的通信;服务器(Flask)与Jenkins从节点(Slave)间的通信可以通过安全外壳协议(SSH)进行建立,也可通过TCP/IP协议或者Socket协议进行建立,本示例实施方式对此不做特殊限制。
在步骤S230中,通过所述服务器控制所述Jenkins从节点上配置的所述连接脚本以启动所述Jenkins主节点与所述Jenkins从节点间的所述连接进程。
在本示例实施方式中,上述连接脚本可以是使用一种特定的描述性语言(可以是Java)并依据一定的格式编写的可执行文件(可供Flask启动与Slave间的连接进程),也可以根据实际情况进行其他的定义,例如可以是文字命令等等,本示例对此不作特殊限制。在本示例中,通过Flask控制Slave上配置的连接脚本来启动Jenkins主节点(Master)与Jenkins从节点(Slave)间的连接进程。
在本示例的另一种实施方式中,还提供了另一种Jenkins节点状态管理方法。参考图3所示,该Jenkins节点状态管理方法还可以包括步骤S320以及步骤S320。其中:
在步骤S310中,判断所述连接进程是否启动成功。详细而言:
可以根据与Slave关联的用户终端的所有进程列表中是否存在上述连接进程来判断上述连接进程是否启动成功;其中,可以通过Python的Paramiko模块使用秘钥认证登录Slave客户端,然后执行ps aux|grep java命令查看用户终端的所有java进程,然后在这些进程中查看当前连接进程是否存在。此外,在本公开的其他示例性实施例中,也可以根据实际情况以其他的方式判断连接进程是否启动成功,本示例性实施例中对此不做特殊限定。
在步骤S320中,在判断所述连接进程成功启动时,确定所述Jenkins从节点处于连接状态并将连接结果发送给所述前端模块。详细而言:
当与Slave关联的用户终端的进程列表中存在上述连接进程时,则可以确定Slave处于连接状态然后将连接结果发送给前端页面;当与Slave关联的用户终端的进程列表中不存在上述连接进程时,则可以确定Slave继续处于断开状态,可以将此情况以日志的形式反馈给技术人员,并通过技术人员完成对Slave的连接。上述重新连接的具体执行代码可以参考如下所示:
本示例实施方式还提供了另一种Jenkins节点状态管理方法。参考图4所示,该Jenkins节点状态管理方法还可以包括步骤S410~步骤S430。其中:
在步骤S410中,生成一包括***公钥以及***私钥的密钥对并将所述***公钥配置到与所述Jenkins从节点关联的用户端目录文件中。
在本示例实施方式中,上述密钥对是通过一种算法得到的一个密钥对,例如可以是ssh-keygen-t rsa,也可以是ssh-keysystem-t rsa或者ssh-keymaster-t rsa等等,本示例对此不作特殊限制;其中,***公钥是密钥对中公开的部分;***私钥则是非公开的部分,可以用于远程登录。在本示例中,生成上述密钥对后,将将生成的公钥文件(例如可以是id_rsa.pub)中内容加到与Slave关联的用户端的任一用户目录文件(例如可以是authorized_keys)中,从而获得远程密钥登录slave的权限。
在步骤S420中,当响应所述查询请求时,所述服务器通过所述***私钥对所述查询请求进程进行验证。
在本示例实施方式中,为了保证上述查询请求是合法的,当响应上述查询请求时,Flask首先通过上述***私钥对该查询请求的合法性进行验证。此外,在本公开的其他示例性实施例中,也可以根据实际情况以其他的方式对查询请求的合法性进行验证,本示例性实施例中对此不做特殊限定。进一步的:
为了保证上述连接请求的合法性,当响应上述连接请求时,Flask也可以先通过上述***私钥对该连接请求的合法性进行验证。
在步骤S430中,在所述查询请求进程通过验证时,通过安全外壳协议建立所述Jenkins从节点与所述服务器间的通信。
在本示例实施方式中,上述安全外壳协议(SSH,Secure Shell)是一种在不安全网络上提供安全远程登录及其它安全网络服务的协议;利用SSH协议可以有效防止远程管理过程中的信息泄露问题并且可以弥补网络中的漏洞。SSH可以提供基于口令的安全验证,也可以提供基于密钥的验证。在本示例中,为了进一步提高通信的安全性,当上述查询请求进程通过验证时,通过安全外壳协议建立Slave与Flask之间的通信。此外,在本公开的其他示例性实施例中,也可以根据实际情况通过其他的协议建立Slave与Flask之间的通信,例如可以是TCP/IP或者HTTP等等,本示例性实施例中对此不做特殊限定。
进一步的,当上述通信建立完成以后,通过Flask控制Slave上配置的所述查询脚本以查询是否存在Master与所述Slave的连接进程。具体查询过程的执行代码可以参考如下所示:
private_key=paramiko.RSAKey.from_private_key_file(private_key_path)
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=ip,port=port,username=username,pkey=private_key,timeout=1)
stdin,stdout,stderr=ssh.exec_command('ps aux|grep java')
result=stdout.read()
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
本示例实施方式还提供了一种Jenkins节点状态管理装置,其中,Jenkins从节点上配置有一查询脚本。参考图5所示,该Jenkins节点状态管理装置可以包括状态查询请求模块510、第一通信建立模块520、连接进程查询模块530、连接状态确定模块540以及断开状态确定模块550。其中:
状态查询请求模块510可以用于通过一服务器接收一前端模块发送的查询所述Jenkins从节点状态的查询请求。
第一通信建立模块520可以用于响应所述查询请求,建立所述服务器与所述Jenkins从节点间的通信。
连接进程查询模块530可以用于通过所述服务器控制所述Jenkins从节点上配置的所述查询脚本以查询是否存在Jenkins主节点与所述Jenkins从节点的连接进程。
连接状态确定模块540可以用于当查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时,确定所述Jenkins从节点处于连接状态。
断开状态确定模块550可以用于当未查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时,确定所述Jenkins从节点处于断开状态。
本示例实施方式还提供了另一种Jenkins节点状态管理装置,Jenkins从节点上配置有一连接脚本;其中,在所述当未查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时后还包括:
通过一服务器接收一前端模块发送的连接所述Jenkins从节点状态的连接请求;响应所述连接请求,建立所述服务器与所述Jenkins从节点间的通信;通过所述服务器控制所述Jenkins从节点上配置的所述连接脚本以启动所述Jenkins主节点与所述Jenkins从节点间的所述连接进程。
在本示例实施方式中,所述Jenkins节点状态管理装置还包括:
连接进程判断模块可以用于判断所述连接进程是否启动成功。
连接结果发送模块可以用于在判断所述连接进程成功启动时,确定所述Jenkins从节点处于连接状态并将连接结果发送给所述前端模块。
在本示例实施方式中,所述Jenkins节点状态管理装置还包括:
密钥生成模块可以用于生成一包括***公钥以及***私钥的密钥对并将所述***公钥配置到与所述Jenkins从节点关联的用户端目录文件中。
进程验证模块可以用于当响应所述查询请求时,所述服务器通过所述***私钥对所述查询请求进程进行验证。
第二通信建立模块可以用于在所述查询请求进程通过验证时,通过安全外壳协议建立所述Jenkins从节点与所述服务器间的通信。
在本示例实施方式中,所述服务器是基于Flask实现的轻量级Web服务器。
上述Jenkins节点状态管理装置中各模块的具体细节已经在对应的Jenkins节点状态管理方法中进行了详细想描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (10)
1.一种Jenkins节点状态管理方法,其特征在于,Jenkins从节点上配置有一查询脚本,用于对从节点的当前连接状态进行查询;所述方法包括:
通过一服务器接收一前端模块通过异步JavaScript和XML方式发送的查询所述Jenkins从节点状态的查询请求;
响应所述查询请求,通过安全外壳协议建立所述服务器与所述Jenkins从节点间的通信;
通过所述服务器控制所述Jenkins从节点上配置的所述查询脚本以查询是否存在Jenkins主节点与所述Jenkins从节点的连接进程;
当查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时,确定所述Jenkins从节点处于连接状态;
当未查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时,确定所述Jenkins从节点处于断开状态。
2.根据权利要求1所述的Jenkins节点状态管理方法,其特征在于,所述Jenkins从节点上配置有一连接脚本;其中,在所述当未查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时后还包括:
通过所述服务器接收所述前端模块发送的连接所述Jenkins从节点状态的连接请求;
响应所述连接请求,建立所述服务器与所述Jenkins从节点间的通信;
通过所述服务器控制所述Jenkins从节点上配置的所述连接脚本以启动所述Jenkins主节点与所述Jenkins从节点间的所述连接进程。
3.根据权利要求2所述的Jenkins节点状态管理方法,其特征在于,所述Jenkins节点状态管理方法还包括:
判断所述连接进程是否启动成功;以及
在判断所述连接进程成功启动时,确定所述Jenkins从节点处于连接状态并将连接结果发送给所述前端模块。
4.根据权利要求1所述的Jenkins节点状态管理方法,其特征在于,所述节点状态管理方法还包括:
生成一包括***公钥以及***私钥的密钥对并将所述***公钥配置到与所述Jenkins从节点关联的用户端目录文件中;
当响应所述查询请求时,所述服务器通过所述***私钥对所述查询请求进程进行验证;
在所述查询请求进程通过验证时,通过安全外壳协议建立所述Jenkins从节点与所述服务器间的通信。
5.根据权利要求1~4任意一项所述的Jenkins节点状态管理方法,其特征在于,所述服务器是基于Flask实现的轻量级Web服务器。
6.一种Jenkins节点状态管理装置,其特征在于,Jenkins从节点上配置有一查询脚本,用于对从节点的当前连接状态进行查询;所述装置包括:
状态查询请求模块:用于通过一服务器接收一前端模块通过异步JavaScript和XML方式发送的查询所述Jenkins从节点状态的查询请求;
第一通信建立模块:用于响应所述查询请求,通过安全外壳协议建立所述服务器与所述Jenkins从节点间的通信;
连接进程查询模块:用于通过所述服务器控制所述Jenkins从节点上配置的所述查询脚本以查询是否存在Jenkins主节点与所述Jenkins从节点的连接进程;
连接状态确定模块:用于当查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时,确定所述Jenkins从节点处于连接状态;
断开状态确定模块:用于当未查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时,确定所述Jenkins从节点处于断开状态。
7.根据权利要求6所述的Jenkins节点状态管理装置,其特征在于,所述Jenkins从节点上配置有一连接脚本;其中,在所述当未查询到所述Jenkins主节点与所述Jenkins从节点的连接进程时后还包括:
通过所述服务器接收所述前端模块发送的连接所述Jenkins从节点状态的连接请求;
响应所述连接请求,建立所述服务器与所述Jenkins从节点间的通信;
通过所述服务器控制所述Jenkins从节点上配置的所述连接脚本以启动所述Jenkins主节点与所述Jenkins从节点间的所述连接进程。
8.根据权利要求7所述的Jenkins节点状态管理装置,其特征在于,所述Jenkins节点状态管理装置还包括:
连接进程判断模块:用于判断所述连接进程是否启动成功;
连接结果发送模块:用于在判断所述连接进程成功启动时,确定所述Jenkins从节点处于连接状态并将连接结果发送给所述前端模块。
9.根据权利要求6所述的Jenkins节点状态管理装置,其特征在于,所述节点状态管理装置还包括:
密钥生成模块:用于生成一包括***公钥以及***私钥的密钥对并将所述***公钥配置到与所述Jenkins从节点关联的用户端目录文件中;
进程验证模块:用于当响应所述查询请求时,所述服务器通过所述***私钥对所述查询请求进程进行验证;
第二通信建立模块:用于在所述查询请求进程通过验证时,通过安全外壳协议建立所述Jenkins从节点与所述服务器间的通信。
10.根据权利要求6~9任意一项所述的Jenkins节点状态管理装置,其特征在于,所述服务器是基于Flask实现的轻量级Web服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710010707.4A CN106802832B (zh) | 2017-01-06 | 2017-01-06 | Jenkins节点状态管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710010707.4A CN106802832B (zh) | 2017-01-06 | 2017-01-06 | Jenkins节点状态管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106802832A CN106802832A (zh) | 2017-06-06 |
CN106802832B true CN106802832B (zh) | 2020-04-17 |
Family
ID=58984368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710010707.4A Active CN106802832B (zh) | 2017-01-06 | 2017-01-06 | Jenkins节点状态管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106802832B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108234A (zh) * | 2017-12-06 | 2018-06-01 | 链家网(北京)科技有限公司 | 一种分布式任务管理方法及*** |
CN110955583A (zh) * | 2019-12-18 | 2020-04-03 | 米哈游科技(上海)有限公司 | 一种通知方法、装置、电子设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100420219C (zh) * | 2005-10-27 | 2008-09-17 | 华为技术有限公司 | 一种实现节点间通信的方法和*** |
JP2011223172A (ja) * | 2010-04-06 | 2011-11-04 | Mitsubishi Electric Corp | リング型ネットワークシステム、通信装置および障害検出方法 |
CN102916963B (zh) * | 2012-10-26 | 2014-12-31 | 中国人民解放军信息工程大学 | 一种数据安全交换方法、装置、节点及*** |
CN105391763B (zh) * | 2015-10-13 | 2019-01-04 | 北京奇虎科技有限公司 | 对多个apk文件进行加固的方法和服务器 |
CN105389278B (zh) * | 2015-10-13 | 2018-06-12 | 广东聚光电子科技有限公司 | 一种基于can总线的主从机串行通信方法 |
CN106302700B (zh) * | 2016-08-11 | 2019-09-24 | 浪潮(北京)电子信息产业有限公司 | 基于paxos算法的分布式***一致性更新方法及*** |
-
2017
- 2017-01-06 CN CN201710010707.4A patent/CN106802832B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106802832A (zh) | 2017-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11140162B2 (en) | Response method and system in virtual network computing authentication, and proxy server | |
CN109768965B (zh) | 一种服务器的登录方法、设备及存储介质 | |
JP5662507B2 (ja) | 認証方法、認証システム、および、サービス提供サーバ | |
CN113746633B (zh) | 物联网设备绑定方法、装置、***、云服务器和存储介质 | |
US8191123B2 (en) | Provisioning a network appliance | |
US8191122B2 (en) | Provisioning a network appliance | |
US8638941B2 (en) | Distributing keypairs between network appliances, servers, and other network assets | |
CN112491776B (zh) | 安全认证方法及相关设备 | |
CN105450582A (zh) | 业务处理方法、终端、服务器及*** | |
CN111049946B (zh) | 一种Portal认证方法、***及电子设备和存储介质 | |
CN103347020B (zh) | 一种跨应用认证访问的***及方法 | |
WO2022227311A1 (zh) | 对终端进行远程控制的接入处理方法、设备和存储介质 | |
WO2017054570A1 (zh) | Portal认证方法及认证服务器 | |
CN104796408A (zh) | 单点直播登录方法及单点直播登录装置 | |
CN106802832B (zh) | Jenkins节点状态管理方法及装置 | |
CN113761509B (zh) | iframe验证登录方法及装置 | |
JP2013246799A (ja) | 認証装置、認証システム、認証方法、及びプログラム | |
US8621027B2 (en) | Automatically providing identity information for a network appliance | |
JP5383923B1 (ja) | 情報処理装置、情報処理システム、情報処理方法およびプログラム | |
CN112637138A (zh) | 一种实现多服务器免密登录的方法及相关装置 | |
KR101637155B1 (ko) | 신뢰 서비스 장치를 이용한 신뢰된 아이덴티티 관리 서비스 제공 시스템 및 그 운영방법 | |
CN113489695B (zh) | 私有云组网方法、装置、***、计算机设备及存储介质 | |
CN107172082B (zh) | 一种文件共享方法及*** | |
CN111193776B (zh) | 云桌面环境下客户端自动登录方法、装置、设备和介质 | |
CN109450887B (zh) | 数据传输方法、装置及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |