具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种自动化运维的方法,应用于一种自动化运维的系统中,该系统包括运维管理系统、自动化脚本引擎系统以及待管理网络设备,所述运维管理系统能够与自动化脚本引擎系统进行通信,自动化脚本引擎系统能够与所述待管理网络设备进行通信。
其中,所述运维管理系统用于存储网络中的网络设备的设备信息,另外,还用于管理运维业务并根据需要向所述自动化脚本引擎系统下发相应地业务请求信息,并监听所述自动化脚本引擎系统的执行情况。
所述自动化脚本引擎系统用于接收由所述运维管理系统发送的业务请求信息,管理其内部存储器中所存储的引导脚本和业务脚本,并根据业务请求信息创建脚本执行器以执行相应的脚本。
所述待管理网络设备用于表示需要进行运维操作的网络设备,作为运维任务的执行对象。
具体方法流程由自动化脚本引擎系统执行,如图1所示,包括:
101、接收业务请求信息,所述业务请求信息用于指定需要执行的业务操作。
其中,所述业务请求信息可由管理人员根据相应地运维需要选择对应的业务操作类型,在运维管理系统上进行选择。
所述业务操作指的是设备版本升级、配置备份、批量配置下发、配置规范性检查、端口安全检查等运维操作。
102、当所述业务操作不是读取设备信息的操作时,从所述业务请求信息中获取待管理网络设备的设备信息、IP地址及验证信息。
其中,所述设备信息至少包括设备厂商标识和设备型号标识。
需要说明的是,如果业务操作不是读取设备信息,说明在所述运维管理系统中已经保存了需要进行相应运维操作的网络设备的设备信息,这时候只需要从存储设备信息的存储器中获取相应的设备信息并直接进入步骤103即可。如果业务操作是获取设备信息,相应的操作响应流程可参照本发明实施例中后续的描述,在此不多做描述。
另外,在执行运维操作时,是由根据不同的业务操作,以及不同设备的厂商和型号预先写好的业务脚本来执行的,所以在查找对应的脚本之前需要获取相应的网络设备的设备信息;而所述IP地址与所述验证信息用于所述自动化脚本引擎系统在远程连接到待管理网络设备时,进行连接并验证身份使用。
如果以版本升级的业务操作为实例,则所述业务请求信息可写为:
op=iosUpgrade,ip=192.168.1.1,devType=MP1800,man=MAIPU,usr=admin,pw d=admin,enablePwd=admin。
其中,op=iosUpgrade表示业务类型为版本升级,ip=192.168.1.1表示网络设备的IP地址为192.168.1.1,devType=MP1800表示网络设备的型号标识为MP1800,man=MAIPU表示网络设备的厂商标识为MAPU,usr=admin和pwd=admin分别表示登录网络设备的用户名和密码为admin,enablePwd=admin表示特权模式密码,为admin。
103、根据所述业务操作以及所述待管理网络设备的设备厂商标识和设备型号标识,查找引导脚本,并执行查找到的引导脚本,以连接所述待管理网络设备以及查找与所述引导脚本对应的业务脚本。
其中,所述引导脚本存储在所述自动化脚本引擎系统的存储器中,能够根据相应的业务操作类型以及待管理网络设备的厂商标识和设备型号标识匹配并查找业务脚本,并能够根据业务请求信息中携带的待管理网络设备的设备信息、IP地址,连接到待管理网络设备。而对于引导脚本及后续业务脚本的执行可通过在所述自动化脚本引擎系统接收到业务操作请求时建立一个脚本执行器,通过该脚本执行器来执行相应的脚本。
需要说明的是,当未能查找到对应的引导脚本时,则所述自动化脚本引擎系统根据所述业务操作,以及所述待管理网络设备的设备厂商,获取默认脚本,该默认脚本是指与所述业务操作对应的,并且能够被所述待管理网络设备的设备厂商下属所有的网络设备使用的引导脚本。
值得说明的是,由于默认脚本的获取仅需要根据具体的业务操作以及设备厂商两个参数,并不涉及设备型号,因此,在获取默认脚本的过程中时,可以将设备型号标识设置为缺省,当然也可以不设置设备型号,本发明实施例对此不做特定的限制。
104、执行查找到的业务脚本,从而根据所述待管理网络设备的IP地址及验证信息,登录到所述待管理网络设备,添加新的业务操作任务来执行所述业务脚本中的业务操作,并返回业务操作结果。
其中,在获取所述与业务操作对应的业务脚本之前,本发明实施例要求预先写好相应的业务脚本,并为写好的业务脚本建立配置文件,然后根据配置文件为每个业务类型创建脚本库,这样,在执行引导脚本获取业务脚本时,就能够根据引导程序从脚本库查找到对应的业务脚本了。
以版本升级为例,为所有脚本建立的配置文件可按照下面的格式编写:
其含义为:script service="iosUpgrade"表示脚本所执行的业务类型为版本升级,name="defaultUpdateSoftWare"表示脚本的名称为缺省的版本升级脚本,productmanufacturer="MAIPU"表示脚本所对应网络设备的制造厂商标识为MAIPU,productClass="default"表示脚本对应的设备型号标识缺省。
同样的,script service="iosUpgrade",name="1800UpdateSoftWare"productmanufacturer="MAIPU",productClass="MP1800"分别表示,脚本执行的业务类型为版本升级,名称为1800版本升级脚本,对应的网络设备的制造厂商标识为MAIPU,型号标识为MP1800。
需要说明的是,所述自动化脚本引擎系统可选择通过执行所述引导程序,并根据所获取的待管理网络设备的IP地址及验证信息,以Telnet方式登录到待管理网络设备。
另外,在执行器中添加业务操作任务之后,所述自动化脚本引擎系统会将业务任务下发成功的信息返回给运维管理系统,来更新管理系统中的业务执行状态,并在执行业务脚本的过程中,将执行的情况存储在执行器中,并可以响应于所述运维管理系统的读取请求返回当前脚本运行信息,以供运维管理系统在管理过程中实时监听并更新任务执行的状态。
本发明实施例提供的一种自动化运维的方法,通过根据业务请求所指定的业务操作,以及待管理网络设备的设备厂商标识和设备型号标识来查找对应的引导脚本,根据引导脚本连接到待管理网络设备并查找对应业务脚本,并登录到待管理的网络设备,然后根据所查找到业务脚本添加新的业务执行操作任务来执行所述业务脚本的方法,自动匹配并执行所要执行的业务脚本,避免了由管理人员在需要执行相应运维任务时,以人工管理的方式选择对应的业务脚本,因而减少了管理人员的工作量以及对网络设备进行维护的难度,解决了因运维脚本数量大,造成的对网络系统进行运维的负担重,维护困难问题。
进一步的,本发明实施例提供了一种在所述业务操作为用于获取设备信息的操作时的处理方式,该方法流程为与步骤102至103所示流程的并行分支,具体如图2所示,包括:
201、查找所有用于读取设备信息的操作的脚本。
其中,当所述业务操作为用于读取设备信息的操作时,说明有新的网络设备要添加到运维管理系统当中,需要读取相应网络设备的设备信息,然后再进行后续的运维操作,所以,在此与业务操作为执行相应的业务加以区分,以备在执行业务时能够找到对应的设备来执行相应的运维操作。
202、执行所有用于读取设备信息的操作的脚本,以获取所述待管理网络设备的设备信息。
其中,执行所有用于获取设备信息的脚本的方法为:利用脚本执行器加载并执行所述所有用于读取设备信息的操作的脚本;需要说明的是,该脚本执行器与步骤104中所述的执行器为同一个,即该执行器可以用于保存脚本,并为三种不同的脚本提供所需的请求参数以及Telnet访问接口等环境参数。
203、将获取到的所述设备信息发送给运维管理系统以进行存储。
其中,运维管理系统接收到自动化脚本引擎系统所发送的设备信息后,根据该设备信息,将该设备的设备信息添加到相应的存储器中,以备需要执行运维任务时能够查找到。
另外,本发明实施例在获取待管理网络设备的设备信息的方式为遍历方式,通过在执行器上运行所有用于获取设备信息的操作的脚本,直至通过其中一个脚本获取到待管理网络设备的设备信息为止。
在本发明实施例中,通过查找所有用于读取设备信息的操作的脚本,并执行脚本,直到有一个脚本获取到设备信息的方式,来处理当业务操作为获取设备信息时的情况,为在运维管理系统中添加新的网路设备信息提供了一种实现方式,在为运维任务的执行提供了实施的可能性的同时,更方便了管理人员对网络设备信息的管理。
进一步的,为了更清楚地阐述图1和图2所示的方法,本发明实施例还提供了自动化运维的总的方法流程,应用于图1和图2所述方法流程所应用的自动化运维系统中,具体如图3所示,包括:
A、运维管理系统向自动化脚本引擎系统发送业务请求信息。
B、所述自动化脚本引擎系统接收业务请求信息,创建执行器,并判断所述业务请求信息所指定的业务类型是否是获取设备信息;若判断结果为是,进入步骤C,否则进入步骤D。
C、所述自动化脚本引擎系统查找所有用于执行所述获取设备信息操作的脚本,执行查找到的所述脚本直至有一个脚本获取到设备信息,并将获取到的设备信息返回到运维管理系统。
D、所述自动化脚本引擎系统读取所述待管理网络设备的设备信息,以及所述网络设备对应的IP地址及验证信息。
E、所述自动化脚本引擎系统根据所述业务请求所指定的业务类型的标识,以及所述网络设备的厂商标识和设备型号标识,查找对应的引导脚本,并判断是否查找到所述引导脚本,若查找到则进入步骤G,若未查找到则进入步骤F。
F、所述自动化脚本引擎系统根据业务类型及网络设备的设备厂商标识获取默认脚本。
G、所述自动化脚本引擎系统在获取到所述引导脚本后,由所建立的执行器加载执行所述引导脚本。
H、所述自动化脚本引擎系统根据所述网络设备的IP地址及验证信息连接并登录所述网络设备,并判断是否登录成功,若登录不成功则进入步骤I,若登录成功则进入步骤J。
I、所述自动化脚本引擎系统向运维管理系统返回运维操作失败的消息,结束运维流程。
J、所述自动化脚本引擎系统运行所述引导脚本连接待管理网络设备,并查找对应的业务脚本,根据所述业务脚本添加新的业务操作任务来执行所述脚本,然后将执行结果存储至脚本执行器,并向运维管理系统返回运维操作成功的消息。
K、运维管理系统监听脚本执行器中存储的业务执行结果,并根据业务执行结果更新业务执行情况。
本发明实施例提供的一种自动化运维的方法,通过根据业务请求所指定的业务操作,以及待管理网络设备的设备厂商和设备型号来查找对应的引导脚本,根据引导脚本连接到待管理网络设备并查找对应业务脚本,并登录到待管理的网络设备,然后根据所查找到业务脚本添加新的业务执行操作任务来执行所述业务脚本的方法,自动匹配并执行所要执行的业务脚本,避免了由管理人员在需要执行相应运维任务时,以人工管理的方式选择对应的业务脚本,因而减少了管理人员的工作量以及对网络设备进行维护的难度,解决了因运维脚本数量大,造成的对网络系统进行运维的负担重,维护困难问题。
本发明实施例还提供了一种自动化运维的系统,系统结构如图4所示,具体包括:运维管理系统41、自动化脚本引擎系统42以及待管理网络设备43,所述运维管理系统41能够与自动化脚本引擎系统42进行通信,自动化脚本引擎系统42能够与所述待管理网络设备43进行通信;其中,所述待管理网络设备43的数量不确定,因此在图4中,用待管理网络设备n来表示待管理网络设备43的数量为多个。
其中,所述运维管理系统41,用于向所述自动化脚本引擎发送业务请求信息,所述业务请求信息用于指定需要执行的业务操作。
所述自动化脚本引擎系统42,用于接收所述运维管理系统41发送的业务请求信息,当所述业务请求所指定的业务操作不是读取设备信息的操作时,从所述业务请求信息中获取待管理网络设备43的设备信息、IP地址及验证信息;所述设备信息至少包括设备厂商标识和设备型号标识;根据所述业务操作,以及所述待管理网络设备43的设备厂商标识和设备型号标识,查找引导脚本;执行查找的引导脚本用于查找执行业务操作的业务脚本,以连接所述待管理网络设备43以及查找与所述引导脚本对应的业务脚本;执行查找到的业务脚本,从而根据所述待管理网络设备43的IP地址及验证信息,登录到所述待管理网络设备43,添加新的业务操作任务来执行所述业务脚本中的业务操作,并返回业务操作结果给运维管理系统41。
可取的是,所述自动化脚本引擎系统42,还用于当所述业务操作为用于读取设备信息的操作时,查找所有用于读取设备信息的操作的脚本;执行所有用于读取设备信息的操作的脚本,以获取所述待管理网络设备43的设备信息;将获取到的所述设备信息发送给运维管理系统41。
所述运维管理系统41还用于接收自动化脚本引擎系统42发送的设备信息,并进行存储。
可取的是,所述自动化脚本引擎系统42,还还用于在未能查找到引导脚本时,根据所述业务操作,以及所述待管理网络设备的设备厂商标识,获取默认脚本;所述默认脚本是指与所述业务操作对应的,并且为所述待管理网络设备的设备厂商下属所有设备均能够使用的引导脚本。
可取的是,所述自动化脚本引擎系统42,还用于为预先写好配置文件的每个业务类型创建脚本库。
可取的是,所述自动化脚本引擎系统42还用于根据所获取的待管理网络设备43的IP地址及验证信息,通过Telnet方式登录到待管理网络设备43。
本发明实施例提供的一种自动化运维的系统,通过根据业务请求所指定的业务操作,以及待管理网络设备的设备厂商和设备型号来查找对应的引导脚本,根据引导脚本连接到待管理网络设备并查找对应业务脚本,并登录到待管理的网络设备,然后根据所查找到业务脚本添加新的业务执行操作任务来执行所述业务脚本的方法,自动匹配并执行所要执行的业务脚本,避免了由管理人员在需要执行相应运维任务时,以人工管理的方式选择对应的业务脚本,因而减少了管理人员的工作量以及对网络设备进行维护的难度,解决了因运维脚本数量大,造成的对网络系统进行运维的负担重,维护困难问题。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。