一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种自动化脚本执行系统及执行方法与流程

2022-05-26 20:51:11 来源:中国专利 TAG:


1.本发明公开了一种自动化脚本执行系统及执行方法,涉及自动化运维技术领域。


背景技术:

2.随着企业业务范围的扩大和业务能力的增强,企业业务系统所涉及的硬件技术环境和软件技术环境逐步扩大。可能涉及的操作系统有windows、linux、aix、unix等;可能涉及的数据库有oracle、mysql、金仓、db2、达梦等;可能涉及的中间件有tomcat、weblogic、redis等;网络设备涉及交换机、路由器、网络防火墙等。运维工作涉及面过广,对运维人员的专业能力要求过高,增加了运维的成本和运维的难度。部分运维人员编写了各类作业脚本,包括但不限于数据库的自动巡检脚本、中间件的启停脚本、设备故障检测脚本等。可以提高工作效率,减少工作量,同时方便经验不足的运维人员使用。
3.现有运维过程中脚本的执行方法既不够规范也不够系统,首先缺乏对全部运维对象的统一管控,其次,由于运行环境细节差异作业脚本往往无法适用于同类型其他设备,需要一个自动化运维系统对运维对象和作业脚本进行统一管理。


技术实现要素:

4.本发明针对上述背景技术中的缺陷,提供一种自动化脚本执行系统及执行方法,方便了对于系统设备和脚本的维护。
5.为实现上述目的,本发明采用的技术方案如下:一种自动化脚本执行系统,包括:管理ui模块、脚本执行后台服务端;
6.管理ui模块:用于接收脚本执行任务指令输入,对脚本执行任务进行分类,读取数据库中的脚本,并下发脚本执行任务至脚本执行后台服务端,
7.脚本执行后台服务端:用于接收管理ui模块下发脚本执行任务,将agent类型脚本发送至对应目标设备的agent代理服务或者远程连接目标设备执行通信协议类型脚本。
8.进一步的,脚本执行后台服务端包括:脚本执行后台中心模块和插件模块,
9.脚本执行后台中心模块:用于用于接收管理ui模块下发脚本执行任务,将agent类型脚本发送至对应目标设备的agent代理服务以及接收agent代理服务返回的脚本执行日志,
10.插件模块:通过通信协议远程连接目标设备执行通信协议类型脚本以及返回的脚本执行日志。
11.进一步的,所述脚本执行任务包括:目标设备和脚本,对脚本执行任务进行分类具体包括:根据目标设备类型配置相适配的脚本类型,若目标设备为物理机、虚拟机和小型机则将脚本执行任务转发至agent代理服务,否则通过插件模块直接执行脚本;agent代理服务:运行于目标设备,接收脚本执行后台服务端发送的脚本执行任务,agent代理服务为c语言开发,采用《stdlib.h》依赖库中的system()方法,直接在目标设备上执行脚本,并将脚本执行日志作为返回值返回脚本执行后台中心模块;
12.插件模块接收到脚本执行任务后,通过通信协议创建与目标设备的短链接,通过通信协议执行脚本并将并将脚本执行日志作为返回值返回脚本执行后台中心模块。
13.进一步的,脚本执行后台中心模块与agent代理服务之间、脚本执行后台中心模块与插件模块之间均通过socket进行通信。
14.进一步的,所述socket的通信内容通过protobuf进行序列化和反序列化;通信采用长链接,对socket的开关方法以及重连机制进行处理。
15.一种自动化脚本执行方法,包括以下步骤:
16.步骤1:输入待执行脚本和目标设备;
17.步骤2:管理ui模块根据脚本类型和目标设备类型判断脚本执行的方式;如果脚本可以通过目标设备的agent代理服务上执行,则转入步骤4;如果脚本无法通过agent代理服务执行,则转入步骤5;
18.步骤4:管理ui模块配置脚本任务参数,将脚本任务依次下发至脚本执行后台中心模块和目标设备上的agent代理服务,agent代理服务在目标设备上直接执行脚本,转入步骤6;
19.步骤5:管理ui模块配置通信协议连接信息,将脚本任务依次下发至脚本执行后台中心模块,脚本执行后台中心模块通过插件模块执行脚本,转入步骤6;
20.步骤6:agent代理服务或插件模块将脚本执行日志作为返回值返回前台页面;
21.步骤7:自动化脚本执行任务结束。
22.进一步的,步骤4中,配置脚本任务参数具体包括:以${参数名}的方式配置脚本运行时的环境变量,环境变量在脚本运行时通过拼接执行命令[sh/cmd][脚本名称.sh/bat]-[参数名1][参数值]-[参数名2]参数值...的方式动态注入,所述的环境变量为:不同的目标设备。
[0023]
进一步的,步骤5中,所述的通信协议连接信息为脚本执行后台中心模块与目标设备进行连接的信息,信息内容与连接的通信协议相适配,
[0024]
与数据库类型设备连接的jdbc协议,需要的连接信息为:目标设备即数据库ip地址、数据库端口、数据库服务名、数据库的用户名和密码;
[0025]
与中间件设备连接的jmx协议,需要的连接信息为:目标设备即中间件ip地址、中间件jmx端口、中间件jmx用户名和密码(非必填);
[0026]
与网络设备和安全设备连接的snmp协议,需要的连接信息为:目标设备的ip地址、udp端口、snmp版本、snmp团体名。
[0027]
与现有技术相比,本发明所达到的有益效果是:
[0028]
本发明将通过agent代理服务和通信协议两种方式,扩大了可以执行脚本设备的类型,提高脚本的适用设备范围。同时,通过配置参数,使得同一个脚本可以用于同类型的其他设备,不会因运行环境差异无法执行,提高脚本的适用性。本发明的自动化脚本执行系统,可以极大的方便运维人员,提高运维效率。
附图说明
[0029]
图1为自动化脚本执行系统整体架构图;
[0030]
图2为自动化脚本执行系统的流程图;
[0031]
图3为脚本执行后台中心模块的通信方式示意图。
具体实施方式
[0032]
下面结合附图对技术方案的实施作进一步的详细描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0033]
本发明的构思:基于agent代理服务和通信协议完成软硬件设备(目标设备)的自动化执行脚本,主机设备可以安装agent代理服务;网络设备、数据库设备、中间件设备通过通信协议远程执行脚本。
[0034]
目标设备分为主机设备、网络设备、数据库设备、中间件设备四类;
[0035]
agent代理服务可以安装在主机设备上,其中,主机设备包括:物理机、虚拟机、小型机;
[0036]
agent代理服务无法安装于网络设备、数据库设备、中间件设备;网络设备包括:交换机、路由器、防火墙;数据库包括:oracle数据库、mysql数据库、postgresql数据库;中间件设备包括:weblogic中间件、tomcat中间件、redis中间件;脚本按照语法包括:shell脚本、bat脚本、jdbc脚本。
[0037]
实施例一:
[0038]
如图1所示,一种自动化脚本执行系统,包括:管理ui模块、脚本执行后台服务端;
[0039]
管理ui模块:用于读取数据库中的脚本,对脚本执行任务进行分类,并下发脚本执行任务至脚本执行后台服务端,
[0040]
脚本执行后台服务端:用于接收管理ui模块下发脚本执行任务,将agent类型脚本发送至对应目标设备的agent代理服务或者远程连接目标设备执行通信协议类型脚本。
[0041]
脚本执行后台服务端包括:脚本执行后台中心模块和插件模块,
[0042]
脚本执行后台中心模块:用于用于接收管理ui模块下发脚本执行任务,将agent类型脚本发送至对应目标设备的agent代理服务以及接收agent代理服务返回的脚本执行日志,
[0043]
插件模块:通过通信协议远程连接目标设备执行通信协议类型脚本以及返回的脚本执行日志。
[0044]
所述脚本执行任务包括:目标设备和脚本,对脚本执行任务进行分类具体包括:根据目标设备类型配置相适配的脚本类型,若目标设备为物理机、虚拟机和小型机则将脚本执行任务转发至agent代理服务,否则通过插件模块直接执行脚本;
[0045]
agent代理服务:运行于目标设备,接收脚本执行后台服务端发送的脚本执行任务,agent代理服务为c语言开发,采用《stdlib.h》依赖库中的system()方法,直接在目标设备上执行脚本,并将脚本执行日志作为返回值返回脚本执行后台中心模块;
[0046]
插件模块接收到脚本执行任务后,通过通信协议创建与目标设备的短链接,通过通信协议执行脚本并将并将脚本执行日志作为返回值返回脚本执行后台中心模块。
[0047]
如图3所示,脚本执行后台中心模块与agent代理服务之间、脚本执行后台中心模块与插件模块之间均通过socket进行通信;所述socket的通信内容通过protobuf进行序列化和反序列化;通信采用长链接,对socket的开关方法以及重连机制进行处理;假设脚本执行后台中心模块给agent代理服务发送脚本执行任务,那么首先将任务信息protobuf序列
化以后,以“request”类型发送给agent代理服务,agent代理服务收到消息后,解析protobuf,如果是“request”类型,那么接着返回一个“response”类型的消息给脚本执行后台中心模块。之后agent代理服务会根据解析后的消息进行相应操作,操作结束后,如果要将操作结果反馈给脚本执行后台中心模块,那么agent代理服务需将操作结果protobuf序列化以后,以“request”类型发送给脚本执行后台中心模块,脚本执行后台中心模块收到消息后解析protobuf,如果是“request”类型,那么接着返回一个“response”类型的消息给agent代理服务。
[0048]
实施例二:
[0049]
参见图2所示,一种自动化脚本执行方法,包括以下步骤:
[0050]
步骤1:输入待执行脚本和目标设备;
[0051]
步骤2:管理ui模块根据脚本类型和目标设备类型判断脚本执行的方式;如果脚本可以通过目标设备的agent代理服务上执行,则转入步骤4;如果脚本无法通过agent代理服务执行,则转入步骤5;
[0052]
步骤4:管理ui模块配置脚本任务参数,将脚本任务依次下发至脚本执行后台中心模块和目标设备上的agent代理服务,agent代理服务在目标设备上直接执行脚本,转入步骤6;
[0053]
步骤5:管理ui模块配置通信协议连接信息,将脚本任务依次下发至脚本执行后台中心模块,脚本执行后台中心模块通过插件模块执行脚本,转入步骤6;
[0054]
步骤6:agent代理服务或插件模块将脚本执行日志作为返回值返回前台页面;
[0055]
步骤7:自动化脚本执行任务结束。
[0056]
在执行脚本前,为了使脚本适用于目标设备环境,对于通过agent代理服务执行的脚本,需要运维人员在前台终端配置与目标环境匹配的参数信息;对于通过通信协议执行的脚本,需要配置通信协议的连接信息。
[0057]
脚本执行结束后,agent和通信协议插件均会将脚本执行过程中产生的日志作为结果返回脚本执行后台程序,然后后台程序将结果返回前台操作界面ui,以告知此次执行脚本的结果信息,完成整个脚本执行流程。
[0058]
目标设备类型与脚本类型以及配置信息的对应关系如下表所示:
[0059][0060]
表1软硬件设备与脚本类型的对应关系
[0061]
由上表可知:若目标设备已经安装agent代理服务,并且脚本类型为shell类型或bat类型,则该脚本执行任务可以通过目标设备的agent代理服务执行,否则只能根据设备类型通过通信协议(jdbc、jmx、snmp等)远程连接目标设备,执行相应的通信协议类型脚本。
[0062]
以一次完整的weblogic重启的自动化重启脚本的执行过程为例:该脚本为虚拟机上执行的shell脚本,可以通过agent代理服务执行,通过本发明系统进行自动化脚本执行的过程详细说明如下:
[0063]
输入待执行的目标设备,为环境中某一个虚拟机,输入待执行脚本为:重新启动weblogic的脚本,形成脚本执行任务;
[0064]
管理ui模块判断脚本类型为shell脚本,且目标虚拟机上已经安装agent代理服务,说明该脚本可以通过目标虚拟机上的agent代理服务执行;
[0065]
在脚本执行任务下发前可以配置执行参数,管理ui模块将脚本中的参数进行赋值,即使用logdir指定weblogic的日志目录,使用logdestdir指定weblogic的归档日志目录,使用domainbase指定weblogic的domain路径,使用domainname指定weblogic的域名称,使用servernmae指定weblogic的节点名称,使用adminurl指定控制台ip地址,使用adminport指定控制台端口,使用username指定weblogic进程的启动用户。在脚本执行前,由于不同环境中的weblogic控制台程序的域所在路径、启动用户、启动日志路径等有所不
同,需要通过前台操作页面,将这些个性化的参数进行赋值,以适配目标设备,确保脚本可以正确地重启目标设备上的weblogic控制台;
[0066]
赋值结束后,前台操作管理ui将脚本执行任务下发至脚本执行后台服务端,脚本执行后台服务端发送给虚拟机上的agent代理服务;
[0067]
agent代理服务执行已经将参数赋值的脚本,将执行日志作为结果返回操作管理ui前台终端,根据执行日志,运维人员可以判断脚本是否执行成功,若失败,检查出错位置日志进行排错。
[0068]
通过配置相应执行参数,使得同一个脚本可以用于同类型的其他设备,为了提高脚本的适用性,不会因运行环境差异无法执行。
[0069]
实施例:
[0070]
以一次完整的oracle归档日志查询的自动化巡检脚本的执行过程为例:该脚本为oracle数据库上执行的sql脚本,无法通过agent代理服务执行,可以通过脚本执行后台服务端上的sql脚本执行插件执行,通过本发明系统进行自动化脚本执行的过程详细说明如下:
[0071]
输入待执行的目标设备,为环境中某一个oracle数据库实例,输入待执行脚本为:oracle归档日志查询的脚本,形成脚本执行任务;
[0072]
管理ui模块判断脚本类型为sql脚本,且目标设备类型为数据库,说明该脚本可以通过脚本执行后台服务端远程执行;
[0073]
在脚本执行任务下发前必须配置通信协议连接信息,管理ui模块配置jdbc协议所需要的全部连接信息,即目标oracle数据库的ip地址,目标oracle数据库的端口,目标oracle数据库的数据库名称,以及目标oracle数据库的用户名和密码,以确保插件可以通过jdbc协议连接该数据库;
[0074]
连接信息配置结束后,前台操作管理ui将脚本执行任务下发至脚本执行后台服务端,脚本执行后台服务端发送给jdbc脚本执行插件;
[0075]
jdbc脚本执行插件首先通过操作管理ui中配置的连接信息与目标数据库创建连接,若连接失败则尝试重新创建连接,若三次尝试均失败,则插件将连接的报错信息作为执行日志发送给操作管理ui前台终端;若连接成功,jdbc脚本执行插件远程执行sql脚本,查询改数据库的归档日志使用状态,将执行日志作为结果返回操作管理ui前台终端,根据执行日志,运维人员可以判断脚本是否执行成功,若失败,检查出错位置日志进行排错。
[0076]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献