一种系统部署方法、装置、电子设备和存储介质与流程

文档序号:15163809发布日期:2018-08-14 17:11阅读:132来源:国知局

本发明涉及信息处理技术领域,特别涉及一种系统部署方法、装置、电子设备和存储介质。



背景技术:

在软件部署时经常运用自动化运维系统,解决人工部署时间长,易出错的问题。

现有的多采用直接网络连接的形式复制文件,或采用基于传统消息网络或网络接口的形式传送运维命令,对于运维程序来说适用性差,维护不变,不能针对通用的部署环境提供通用的自动化运维系统。



技术实现要素:

有鉴于此,本申请提供一种系统部署方法、装置、电子设备和存储介质,能够提高系统部署效率,且节省部署资源。

为解决上述技术问题,本申请的技术方案是这样实现的:

一种系统部署方法,该方法包括:

部署服务器接收到自动化运维系统下发的部署消息时,通过解析部署消息中的部署任务xml配置信息,获得部署任务需要的依赖环境信息的所有节点,并将未部署节点对应的依赖环境进行部署,直到所有节点安装并正确配置;

根据部署任务xml配置信息中的部署包存储地址,下载部署包,并使用部署任务xml配置信息中的配置管理节点信息修改部署包中的配置文件;

运行修改了配置文件的部署包,执行部署系统的启动;

在部署系统启动后,通过部署任务xml配置信息中的日志路径,反馈启动日志信息给自动化运维系统;

执行部署任务xml配置信息中的检测系统是否部署成功的方法,并将检测结果返回给自动化运维系统。

一种系统部署装置,该装置包括:接收单元、部署单元、启动单元和反馈单元;

接收单元,用于接收部署消息;

所述部署单元,用于当所述接收单元接收到自动化运维系统下发的部署消息时,通过解析部署消息中的部署任务xml配置信息,获得部署任务需要的依赖环境信息的所有节点,并将未部署节点对应的依赖环境进行部署,直到所有节点安装并正确配置;根据部署任务xml配置信息中的部署包存储地址,下载部署包,并使用部署任务xml配置信息中的配置管理节点信息修改部署包中的配置文件;

所述启动单元,用于运行所述部署单元修改了配置文件的部署包,执行部署系统的启动;

所述反馈单元,用于在所述启动单元启动部署系统后,通过部署任务xml配置信息中的日志路径,反馈启动日志信息给自动化运维系统;执行部署任务xml配置信息中的检测系统是否部署成功的方法,并将检测结果返回给自动化运维系统。

一种电子设备,包括:

至少一个中央处理器;以及,

与所述至少一个中央处理器通信连接的存储器;其中,

所述存储器存储有可被所述一个中央处理器执行的指令,所述指令被所述至少一个中央处理器执行,以使所述至少一个中央处理器能够执行上述方法。

一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述方法。

由上面的技术方案可知,本申请中自动化运维系统基于xml配置信息将各种运维信息和依赖信息配置在一起,下发部署消息给对应服务器,使服务器根据部署任务xml配置信息进行灵活的系统部署。该方案只需配置xml信息和执行脚本,不受语言,以及系统开发框架的限制,能够提高系统部署效率,且节省部署资源。

附图说明

图1为本申请实施例中编译打包任务处理示意图;

图2为本申请实施例中系统部署流程示意图;

图3为本申请实施例中应用于上述技术的装置结构示意图;

图4为本申请实施例中电子设备的硬件结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。

本申请实施例中提供一种系统部署方法,自动化运维系统基于可扩展标记语言(extensiblemarkuplanguage,xml)配置信息将各种运维信息和依赖信息配置在一起,下发部署消息给对应服务器,使服务器根据部署任务xml配置信息进行灵活的系统部署。该方案只需配置xml信息和执行脚本,不受语言,以及系统开发框架的限制,能够提高系统部署效率,且节省部署资源。

本申请实施例中在部署任务之前,由运维人员通过自动化运维系统的web管理端生成运维任务所需要的xml配置模板。

由运维人员对外部依赖文件上传(配置节点中设置的额外下载文件信息),需要先在此上传文件至云存储、web服务器等网络介质中,上传文件时设置的文件id与xml配置中的文件id相同。所有部署相关文件均在后台数据库中建联关联,方便部署时获取,包括不限于部署包、配置文件、配置模板、运维任务的xml等。

非运维人员通过自动化运维系统的web管理端根据需要,选择不同的配置信息模板组合,并可在适当的节点加入自定义运维命令配置,生成编译打包任务xml配置文件和部署任务xml配置信息。

非运维人员确认生成的xml配置信息无误后,向自动化运维系统提交运维任务。

将自动化运维任务中配置的任务主题在消息总线中注册该任务主题,用于接收编译服务器和部署服务器回传任务运维进度和日志信息。

部署任务xml配置信息包括:自定义xml配置信息和xml模板配置信息,其中,该xml模板配置信息为基础部署信息。

在具体实现时,对于不易改变的xml配置信息,且大多数任务部署都需要的部署信息,可以配置成配置模板;在生成不同的任务时,不需要手动配置xml配置信息,只需直接引用xml模板配置信息即可,如为每个配置模板分配全局唯一的id,直接引用该id对应的模板即可。

部署任务xml配置信息包含如下内容:

部署环境的ip地址,服务器用户名、登录密码,部署任务主题;支持多个已安装自动化运维服务端代理程序的服务器。

部署系统依赖的环境信息:依赖环境检测顺序、依赖环境部署成功检测条件、依赖环境安装命令、依赖环境启动命令、启动命令参数、依赖环境部署子节点信息(包括依赖环境检测顺序、依赖环境部署成功检测条件、下载路径或运维脚本源代码或运维二进制文件由xml的cdata区段特性实现、依赖环境部署子节点信息)该节点信息可以嵌套定义。

部署系统的部署包的信息:部署包存储地址。

配置管理信息列表:配置管理节点信息,用指定的配置信息替换部署包中的配置文件。

启动前的运维部署信息:包括运维程序标识符、依赖环境信息,可能包含的自定义运维程序信息(自定义程序名称、下载路径或运维脚本源代码或运维二进制文件由xml的cdata区段特性实现、命令行参数、返回结果的获取信息等),也可以配置成模板信息,该节点信息可以嵌套定义。该信息为可选,在实际中根据具体部署系统的情况确定是否有。

启动部署系统信息:启动命令路径和命令行参数。

启动后日志反馈路径。

检测系统是否部署成功的方法:检测程序标识符、依赖环境信息,可能包含的自定义运维程序信息(自定义程序名称、下载路径或运维脚本源代码或运维二进制文件由xml的cdata区段特性实现、命令行参数、返回结果的获取信息等)。

在生成部署包时,需要先生成编译打包任务xml配置信息。

针对编译打包任务xml配置信息包括:自定义xml配置信息和xml模板配置信息;其中,该xml模板配置信息为基础编译信息。

编译打包任务xml配置信息具体如下:编译环境的ip地址,服务器用户名、登录密码,编译打包任务主题,源代码信息(源代码版本库地址,版本库类型、分支信息,版本信息,编译打包命令、编译打包服务器地址);支持多个已安装自动化运维服务端代理程序的服务器。

编译系统的依赖环境信息:依赖环境检测顺序、依赖环境部署成功检测条件、依赖环境安装命令、依赖环境启动命令、启动命令参数、依赖环境部署子节点信息(依赖环境检测顺序、依赖环境部署成功检测条件、依赖环境部署子节点信息),可能包含的自定义运维程序信息(自定义程序名称、下载路径或运维脚本源代码或运维二进制文件由xml的cdata区段特性实现、命令行参数、返回结果的获取信息等),该节点信息可以嵌套定义。

编译启动前的运维信息:包括运维程序标识符、依赖环境信息,可能包含的自定义运维程序信息(自定义程序名称、下载路径或运维脚本源代码或运维二进制文件由xml的cdata区段特性实现、命令行参数、返回结果的获取信息等),该节点信息可以嵌套定义。

编译完成后的运维信息:包括运维程序标识符、依赖环境信息,可能包含的自定义运维程序信息(自定义程序名称、下载路径或运维脚本源代码或运维二进制文件由xml的cdata区段特性实现、命令行参数、返回结果的获取信息等)该节点信息可以嵌套定义。

编译启动前的运维信息和编译完成后的运维信息为可选配置信息,在实际中根据具体部署系统的情况确定是否有。

在编译打包任务xml配置信息和部署任务xml配置信息中,每个配置节点均配置程序的正确部署输出信息节点和错误异常信息输出节点,在自动化运维日志中显示编译、部署的全过程。

下面给出一个xml配置信息示例,在该示例中将部署任务xml配置信息和编译xml配置信息合在一个xml配置文件中,在具体实现时,也可以分开给出,指明对应的任务主题即可。

下面结合附图,详细描述本申请实现编译打包任务编译的过程。执行编译打包任务的服务器上安装自动化运维服务端代理程序,通过该代理程序实现编译打包任务的编译。执行编译打包任务的服务器可以是多个,每个服务器执行自动化运维系统下发的任务即可,本实施例以一个服务器执行编译打包任务为例。

参见图1,图1为本申请实施例中编译打包任务处理示意图。具体步骤为:

步骤101,编译服务器接收到运维系统下发的编译消息时,通过该编译消息中的编译打包任务xml配置信息,获得编译打包任务需要的依赖环境信息的所有节点,并将未部署的节点对应的依赖环境进行部署,直到所有节点安装并正确配置。

编译服务器通过该编译消息中的编译打包任务xml配置信息,获得编译打包任务需要的依赖环境信息的所有节点之前,先根据编译打包任务的xml配置信息确定该编译打包任务是否需要独占访问;

当确定该编译打包任务需要独占访问时,确定该服务器是否加锁,如果是,进入等队列,直到轮询到该编译打包任务;否则,进行加锁,禁止其它任务访问该服务器。

本步骤中在获得编译打包任务需要的依赖环境信息的所有节点时,依次递归遍历所有节点,这里可能存在一些嵌套的节点,要一一遍历到。

步骤102,该编译服务器若确定存在编译前自动化运维配置信息,则获得编译打包任务需要的依赖环境信息的所有节点,并将未部署的节点对应的依赖环境进行部署,直到所有节点安装并正确配置。

本申请实施例中提到的节点均指xml配置信息中的节点,如果该节点中还嵌套节点,则称为子节点,在获得节点时,应该获得一个节点以及对应的所有子节点。

编译前自动化运维配置信息如系统环境变量设置,配置文件修改等。

步骤103,该编译服务器解析编译打包任务xml配置信息,获得源代码信息节点,下载对应的源代码,并进行编译打包。

步骤104,该编译服务器若确定存在编译完成后的自动化运维配置信息,则获得编译打包任务需要的依赖环境信息的所有节点,并将未部署的相关依赖环境进行部署,直到所有节点安装并正确配置。

步骤105,编译服务器将部署包存储,并生成部署包存储地址,反馈给自动化运维系统。

在具体实现时,如可以将部署包上传至云存储服务器,即存储到其它设备能够获取的地方。

如果编译服务器加锁,此时还需进行解锁,允许其它任务访问该服务器。

以上编译打包任务进行编译的过程中,针对编译打包任务xml配置文件中配置的正确和错误提示信息,向自动化运维系统反馈处理结果。

自动化运维系统将反馈结果反馈给该编译打包任务,根据实际反馈结果确定是否修改当前编译打包任务对应的编译打包任务xml配置信息。

下面结合附图,详细描述本申请实现部署任务部署的过程。执行部署任务的服务器上安装自动化运维服务端代理程序,通过该代理程序实现部署任务的部署。执行部署任务的服务器可以是多个,每个服务器执行自动化运维系统下发的任务即可,本实施例以一个服务器执行部署任务为例。

参见图2,图2为本申请实施例中系统部署流程示意图。具体步骤为:

步骤201,部署服务器接收到自动化运维系统下发的部署消息时,通过解析部署消息中的部署任务xml配置信息,获得部署任务需要的依赖环境信息的所有节点,并将未部署节点对应的依赖环境进行部署,直到所有节点安装并正确配置。

本步骤中通过解析部署消息中的部署任务xml配置信息,获得部署任务需要的依赖环境信息的所有节点之前,进一步包括:

通过所述部署任务xml配置信息确定部署任务是否需要独占访问服务器;

当确定该部署任务需要独占访问服务器时,若该部署服务器已加锁,则进入等队列中,直到轮询到该部署任务;若该部署服务器未加锁,则进行加锁后,通过解析部署消息中的部署任务xml配置信息,获得部署任务需要的依赖环境信息的所有节点;

当确定该部署任务不需要独占访问服务器时,通过解析部署消息中的部署任务xml配置信息,获得部署任务需要的依赖环境信息的所有节点。

本步骤中在获得部署任务需要的依赖环境信息的所有节点时,依次递归遍历所有节点,这里可能存在一些嵌套的节点,要一一遍历到。

步骤202,该部署服务器根据部署任务xml配置信息中的部署包存储地址,下载部署包,并使用部署任务xml配置信息中的配置管理节点信息修改部署包中的配置文件。

在部署任务xml配置信息中若指定部署目录,应将部署包下载到部署目录中。

下载的部署包为编译服务器根据自动化运维系统下发的编译消息中的编译打包任务xml配置信息进行编译处理打包生成的,也可以是其它方式生成的部署包。

步骤203,该部署服务器运行修改了配置文件的部署包,执行部署系统的启动。

执行本步骤之前,若确定部署任务xml配置信息中存在启动前的运维部署信息的部署安装,则获得启动前的运维部署信息,并将未安装的启动前的运维部署信息进行安装并正确配置。

步骤204,该部署服务器在部署系统启动后,通过部署任务xml配置信息中的日志路径,反馈启动日志信息给自动化运维系统。

步骤205,该部署服务器执行部署任务xml配置信息中的检测系统是否部署成功的方法,并将检测结果返回给自动化运维系统。

此时,若确定所述代理程序已加锁,则进行解锁。

在部署过程中,根据对应xml配置信息中的正确和错误提示信息,向自动化运维系统反馈处理结果。

自动化运维系统将反馈结果反馈给该部署任务,根据实际反馈结果确定是否修改当前部署任务对应的部署任务xml配置信息。

下面给出一个具体实施例,详细描述本申请实施例中实现系统部署的过程。

通过自动化运维系统部署一套基于tomcat和mysql数据库的web系统。

运维人员a对mysql的部署过程熟悉,配置了完整的mysql的配置模板信息,包括依赖的环境信息、源码包存储位置、安装启动过程等。

运维人员b对tomcat的配置过程熟悉,配置了完整的tomcat的配置信息横板,包括依赖环境信息、软件包存储位置、启动过程等。同时也包括jdk的配置信息模板。

运维人员d负责添加有关服务器监控信息的配置模板,用于启动服务后的监控数据收集和反馈。

质控人员d配置了该系统的编译源码相关信息的项目模板,供编译任务时使用。

部署人员需要部署tomcat+mysql的web系统,在自动化运维系统中选择mysql、tomcat、jdk和项目源码配置模板和所需软件版本等信息。确认无误后提交编译打包运维任务,即编译打包任务。

自动化运维系统根据配置信息,将编译打包任务通过编译消息下发到指定服务器(编译服务器)上,该指定服务器上安装自动化运维代理agent程序,执行编译打包任务。

编译服务器收到编译消息时,根据消息中的编译打包任务xml配置信息先确认是否需要独占方式编译;

假设需要独占方式编译,且当前服务器未加锁,则加锁。

在加锁之后,进一步解析编译打包任务xml配置信息,因为编译打包环境依次需要jdk、maven两个依赖环境,进一步解析嵌套的依赖环境信息,判断是否在指定路径上安装所需软件的版本,是否配置相应的系统环境变量和配置,如果没有安装,则根据配置信息去下载安装相应的软件,并进行相应的配置,最后运行配置管理中的检测安装成功的方法判断是否可用,如果不可用,删除原有安装环境重新安装配置,重新安装配置后仍不可用,退任务宣告失败。安装程序后会将所需依赖软件的路径等信息存入编译打包任务xml配置信息中指定名称的xml节点中,以供后续节点使用。

在依赖环境可用后,获得编译节点相关配置信息,下载源代码地址,进行编译打包操作生成部署包。

打包成功后将部署包上传至云存储服务器中,编译打包过程结束,并生成部署包存储地址反馈给自动化运维系统。

自动化运维系统配置部署任务xml配置信息,下发部署消息到待部署服务器,该服务器运行自动化运维代理程序,用于执行部署任务。

由于tomcat+mysql的web系统,通常mysql在一台服务器上,tomcat在另一台服务器上,自动化运维系统会分别下发两个条部署消息至两台机器中。

首先是mysql的源码安装部署,mysql服务器接收到部署任务消息,根据该消息中的部署任务xml配置信息中的mysql依赖,依次检测gcc编译器、cmake程序,如果没有安装则进行安装,安装完成后,根据mywql的模板信息,执行mysql的源码编译命令、安装命令、启动命令。

mysql服务器从项目模板中获得数据库授权信息,进行授权操作;再获得mysql的ddl的sql文件地址,下载ddl文件,并执行ddl操作。执行完成后将mysql的链接信息写入mysql服务器中的指定xml节点中,供后续运维节点使用,最后将结果反馈给自动化运维系统,进行接下来的部署工作,同时成功运行后,将根据监控配置信息指定的方法启动相应的监控数据和日志收集工作。

自动化运维系统将下发部署任务至tomcat服务器(运行自动化运维代理程序)上,tomcat服务器根据tomcat配置模板检测并进行依赖环境的安装部署,再根据之前部署任务xml配置信息中生成的部署包地址,下载部署包,解压缩。根据部署任务xml配置信息配置管理节点信息和mysql数据库的连接信息对配置文件进行替换,再根据tomcat配置模板启动tomcat服务,运行检测服务启动成功的方法,成功运行后,将根据监控配置信息指定的方法启动相应的监控数据和日志收集工作,返回给自动化运维系统。

基于同样的发明构思,本申请还提出一种系统部署装置。参见图3,图3为本申请实施例中应用于上述技术的装置结构示意图。该装置包括:接收单元301、部署单元302、启动单元303和反馈单元304;

接收单元301,用于接收部署消息;

部署单元302,用于当接收单元301接收到自动化运维系统下发的部署消息时,通过解析部署消息中的部署任务xml配置信息,获得部署任务需要的依赖环境信息的所有节点,并将未部署节点对应的依赖环境进行部署,直到所有节点安装并正确配置;根据部署任务xml配置信息中的部署包存储地址,下载部署包,并使用部署任务xml配置信息中的配置管理节点信息修改部署包中的配置文件;

启动单元303,用于运行部署单元302修改了配置文件的部署包,执行部署系统的启动;

反馈单元304,用于在启动单元303启动部署系统后,通过部署任务xml配置信息中的日志路径,反馈启动日志信息给自动化运维系统;执行部署任务xml配置信息中的检测系统是否部署成功的方法,并将检测结果返回给自动化运维系统。

较佳地,

部署单元302,进一步用于通过解析部署消息中的部署任务xml配置信息,获得部署任务需要的依赖环境信息的所有节点之前,通过所述部署任务xml配置信息确定部署任务是否需要独占访问服务器;当确定该部署任务需要独占访问服务器时,若该部署服务器已加锁,则进入等队列中,直到轮询到该部署任务;若该部署服务器未加锁,则进行加锁后,通过解析部署消息中的部署任务xml配置信息,获得部署任务需要的依赖环境信息的所有节点;当确定该部署任务不需要独占访问服务器时,通过解析部署消息中的部署任务xml配置信息,获得部署任务需要的依赖环境信息的所有节点;反馈单元304将检测结果返回给自动化运维系统之后,若确定所述部署服务器已加锁,则进行解锁。

较佳地,

部署单元302,进一步用于修改部署包中的配置文件之后,若确定部署任务xml配置信息中存在启动前的运维部署信息的部署安装,则获得启动前的运维部署信息,并将未安装的启动前的运维部署信息进行安装并正确配置。

较佳地,

所述部署包为编译服务器根据自动化运维系统下发的编译消息中的编译打包任务xml配置信息进行编译处理打包生成的。

较佳地,

反馈单元304,进一步用于在任务部署过程中,根据对应xml配置信息中的正确和错误提示信息,向自动化运维系统反馈处理结果。

上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。

基于同样的发明构思,本申请还提出一种系统部署电子设备。参见图4,图4为本申请实施例中电子设备的硬件结构示意图。

图4中所示的电子设备包括至少一个中央处理器401、存储器402。所述存储器402和所述至少一个中央处理器401通过总线连接,所述存储器402用于存储计算机指令,当所述电子设备运行时,所述至少一个中央处理器401执行所述存储器402存储的计算机指令,使得所述电子设备执行如图1所示的方法流程。

基于同样的发明构思,本申请还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemoryram)等。

综上所述,本申请通过自动化运维系统基于xml配置信息将各种运维信息和依赖信息配置在一起,下发部署消息给对应服务器,使服务器根据部署任务xml配置信息进行灵活的系统部署。该方案只需配置xml信息和执行脚本,不受语言,以及系统开发框架的限制,能够提高系统部署效率,且节省部署资源。

本申请实施例中利用服务器端自动化运维agent程序获得消息总线中的部署任务,运行自动化部署任务;利用服务器端自动化运维agent代理程序读取自动化运维xml信息实现自动化运维配置;支持依赖环境的检测、配置和安装信息;实现配置信息的嵌套与递归运维;因此,能够自由灵活的扩展自动化运维功能;可以做到更好的服务器操作隔离,减少运维风险。

服务器端自动化运维agent程序拥有自动生成配置变量的功能,可以实现不同运维命令间的解耦,同时还可以现实运维任务配置时的环境无关性。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1