本发明实施例涉及运维技术领域,尤其涉及一种自动化运维方法及装置。
背景技术:
随着科学技术的快速发展,尤其是云计算、容器等带来新的理念和方法,传统的运维模式面临着前所未有的挑战和机遇。从运维规模来看,从过去仅仅几百上千台主机,到今天成千上万台服务器,服务器和应用的数量呈现急速的增长;从运维范围来讲,从过去单纯的unix的运维范畴,到今天混合了各类操作系统、应用技术以及数据库模式,运维所面临的对象更加多样和复杂。
现有的复杂运维环境中,运维人员通过脚本控制来识别操作对象所属的操作环境,并基于脚本控制生成与操作对象所属操作环境相对应的操作指令,该方式不仅需要运维人员的专业技术比较高,且浪费大量的人力资源。
技术实现要素:
本发明实施例提供一种自动化运维方法及装置,用以解决现有技术中运维人员需要通过脚本控制识别操作对象所属的操作环境,对运维人员的专业要求较高,且浪费人力资源的问题。
本发明实施例提供的一种自动化运维方法,包括:
根据操作指令,确定所述操作指令对应的操作对象;
根据所述操作对象所属的操作环境和所述操作指令中的操作方法类型,从预设文件中确定所述操作对象的操作方法;所述预设文件中包括各操作环境下的操作方法类型的操作方法;
根据所述操作对象的操作方法,生成所述操作对象的实施命令集;
将所述实施命令集下发至所述操作对象。
可选的,所述根据操作指令,确定所述操作指令对应的操作对象,包括:
根据所述操作指令中场景标识,确定所述场景标识对应的操作场景;
根据所述操作指令中业务系统标识,从所述操作场景中确定所述业务系统标识对应业务系统中的多个操作对象。
可选的,所述根据所述操作对象所属的操作环境和所述操作指令中的操作方法类型,从预设文件中确定所述操作对象的操作方法,包括:
根据所述操作对象的指针,从所述预设文件中获取所述操作对象的指针所指向的不同操作环境的操作方法;
根据所述操作对象所属的操作环境,从所述操作对象的指针所指向的不同操作环境的操作方法中确定出与所述操作对象所属的操作环境对应的所述操作方法类型下的操作方法。
可选的,所述预设文件包括缓存文件和非缓存文件;所述缓存文件中包括调用频率超过预设值的操作方法;所述非缓存文件中包括所述各操作环境下的操作方法类型的操作方法;
所述根据所述操作对象的指针,从所述预设文件中获取所述操作对象的指针所指向的不同操作环境的操作方法,包括:
判断所述缓存文件中是否存在所述操作对象的指针所指向的不同操作环境的操作方法,若是,则根据所述操作对象的指针,从所述缓存文件中获取所述操作对象的指针所指向的不同操作环境的操作方法;
否则,从所述非缓存文件中获取所述操作对象的指针所指向的不同操作环境的操作方法。
可选的,所述操作环境包括操作系统类型和/或数据库类型。
上述技术方案中,通过封装不同操作环境下的操作方法,在接收到操作指令之后,自动识别操作指令对应的操作对象以及操作对象所属的操作环境,根据操作对象所属的操作环境和操作方法类型,自动匹配与操作对象所属操作环境相对应的操作方法,从而生成操作命令集,以下发至操作对象,该技术方案无需运维人员手动调用脚本以识别操作对象所属的操作环境且生成相对应的操作指令,降低对运维人员专业技术的要求,自动化生成的方式节省了大量的人力资源。进一步的,设置操作场景,运维人员只需要下发一条操作指令,即可以对多个操作对象进行批量操作。
相应的,本发明实施例还提供了一种自动化运维装置,包括:
确定单元和生成单元;
所述确定单元用于根据操作指令,确定所述操作指令对应的操作对象;根据所述操作对象所属的操作环境和所述操作指令中的操作方法类型,从预设文件中确定所述操作对象的操作方法;所述预设文件中包括各操作环境下的操作方法类型的操作方法;
所述生成单元用于根据所述操作对象的操作方法,生成所述操作对象的实施命令集;将所述实施命令集下发至所述操作对象。
可选的,所述确定单元具体用于:
根据所述操作指令中场景标识,确定所述场景标识对应的操作场景;
根据所述操作指令中业务系统标识,从所述操作场景中确定所述业务系统标识对应业务系统中的多个操作对象。
可选的,所述确定单元具体用于:
根据所述操作对象的指针,从所述预设文件中获取所述操作对象的指针所指向的不同操作环境的操作方法;
根据所述操作对象所属的操作环境,从所述操作对象的指针所指向的不同操作环境的操作方法中确定出与所述操作对象所属的操作环境对应的所述操作方法类型下的操作方法。
可选的,所述预设文件包括缓存文件和非缓存文件;所述缓存文件中包括调用频率超过预设值的操作方法;所述非缓存文件中包括所述各操作环境下的操作方法类型的操作方法;
所述确定单元具体用于:
判断所述缓存文件中是否存在所述操作对象的指针所指向的不同操作环境的操作方法,若是,则根据所述操作对象的指针,从所述缓存文件中获取所述操作对象的指针所指向的不同操作环境的操作方法;
否则,从所述非缓存文件中获取所述操作对象的指针所指向的不同操作环境的操作方法。
可选的,所述操作环境包括操作系统类型和/或数据库类型。
相应的,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述自动化运维方法。
相应的,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述自动化运维方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种现有技术的运维操作流程示意图;
图2为一种现有技术的运维系统结构示意图;
图3为本发明实施例提供的第一种的运维操作流程示意图;
图4为本发明实施例提供的第二种的运维操作流程示意图;
图5为本发明实施例提供的一种适配器的结构示意图;
图6为本发明实施例提供的另一种运维系统结构示意图;
图7为本发明实施例提供的第三种的运维操作流程示意图;
图8为本发明实施例提供的一种操作场景库构建方式;
图9为本发明实施例提供的一种自动化运维装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了更好的解释本发明实施例,先对本发明的具体场景说明如下:
如图1为现有运维场景中运维操作流程,具体如下:
1、需求分析:使用标准化的需求或者个性化的需求,用户通过需求的分析和分解,转化为可实施的技术方法。
2、运维调度:根据用户的需求,获取操作对象和操作方法,在满足现有运维安全和流程的要求下,准备发起执行。
3、运维实施:在指定的时间范围内,发起执行的操作,并获取执行结果。
运维场景所适用的运维系统可以如图2所示的架构图,具体的,从上到下依次为:用户终端(web界面)和对外接口、功能层、核心服务层和基础服务层;其中,功能层主要用于负载均衡、apache静态资源配置、upjas应用;核心服务层主要用于消息队列、运维操作、数据采集、批量执行和安全管控;基础服务层主要包括数据库、cmdb、缓存服务。
运维操作主要采用ansible技术实现,在核心服务层中,根据用户需求,生成playbook剧本,获取用户的操作对象和执行脚本,发起执行操作,获取最终结果。
现有的运维操作中,由于多个操作对象属于不同的操作环境,操作环境比如操作系统、数据库类型等,用户需要在脚本中考虑各种可能的情况,不仅增加了运维的难度,也降低了实施过程的安全性。
为了解决上述问题,本发明实施例提供一种自动化运维方法,引入适配器的概念,该适配器中可以集成各操作环境下的操作方法,从而,在接收到用户的操作指令之后,可以基于用户的操作指令和操作对象所属的操作环境,生成适用于操作对象的实施命令集,以用于操作对象进行实施。
本发明实施例提供一种运维场景中运维操作流程,如图3所示,在运维调度中,会通过适配器生成与操作对象相适应的实施命令集,以用于操作对象进行实施。
基于上述描述,图4示例性的示出了本发明实施例提供的一种自动化的运维操作流程,该流程可以由自动化运维装置执行,该装置可以位于适配器中,可以是该适配器。
如图4所示,该流程具体包括:
步骤401,根据操作指令,确定操作指令对应的操作对象;
本发明实施例中,可以有两种操作指令,第一种情况中,操作指令指示场景索引方式,相当于用户直接下发针对于某个操作场景中某个业务系统的操作指令;第二种情况中,操作指令指示命令集索引方式,相当于用户直接下发针对于某个操作对象的操作指令。
在第一种情况下,可以预设一个大的操作场景库,该操作场景库中包括多个操作场景,且每个操作场景对应一个场景标识,在接收到操作指令之后,可以根据操作指令中的场景标识,确定场景标识对应的操作场景;进一步的,操作场景中包括多个业务系统,再根据操作指令中的业务系统标识,确定操作场景中与业务系统标识对应的业务系统,以及该业务系统下的多个操作对象。
在第二种情况下,由于用户下发的操作指令中包括了操作对象,则可以确定此时的操作对象即为操作指令中的操作对象。此处的用户也可以理解为运维人员,即运维系统向运维人员开放的内部接口,运维人员可以调用内部接口,针对某一个操作对象进行运维操作。
步骤402,根据操作对象所属的操作环境和操作指令中的操作方法类型,从预设文件中确定操作对象的操作方法。
本发明实施例中,可以在适配器中设置预设文件,该预设文件中包括各操作环境下的操作方法类型的操作方法,也可以说,预设文件中包括操作方法类型在各操作环境下的操作方法。比如,预设文件中包括下载操作分别在suse、centos、unix三个操作系统中的操作方法。
此处,如图5提供一种适配器的结构示意图,具体的,适配器包括对外接口层、功能模块层和函数实现层。
对外接口层:用于发布功能模块的访问办法,一个接口面向一个功能,每个功能已经囊括了现有的操作类型和/数据库类型。
功能模块层:用于整合不同版本、不同系统、不同数据库的访问功能。其中,功能层可以嵌套,例如时钟同步具备多种模式,可以通过定时任务,也可以通过时钟服务,这种情况下,时钟同步功能则可以具有两个子功能模块。
函数实现层:用于实现不同版本、操作系统、数据库的功能实现,每个函数集合服务于一个功能模块,每个函数实现指定操作环境下的特定功能。通过增删函数,可以快速实现功能的扩展和调整。
可以将该适配器融入至运维系统中,如图6所示,可以在核心服务层中融入适配器,适配器相当于运维操作的模板,在对于某个操作场景的业务系统中的多个操作对象进行批量执行时,适配器可以针对每个操作对象所属的操作环境,生成针对每个操作对象的实施命令集。
本发明实施中,在根据操作对象所属的操作环境和操作指令中的操作方法类型,从预设文件中确定操作对象的操作方法时,可以是根据操作对象的指针,从预设文件中获取操作对象的指针所指向的不同操作环境的操作方法,再根据操作对象所属的操作环境,从操作对象的指针所指向的不同操作环境的操作方法中确定出与操作对象所属的操作环境对应的操作方法类型下的操作方法。比如,操作对象为服务器,该服务器的操作系统为unix,则根据该服务器的指针,从预设文件中获取该服务器的指针所指向的suse操作系统的操作方法、centos操作系统的操作方法和unix操作系统的操作方法,进而将unix操作系统的操作方法作为该服务器的操作方法。
为了更快的从预设文件中确定操作对象的操作方法,可以从预设文件中确定调用频率较高的操作方法存储至缓存文件中,也就是说,预设文件可以包括缓存文件和非缓存文件,缓存文件中包括调用频率超过预设值的操作方法,非缓存文件中包括各操作环境下的操作方法类型的操作方法,也即所有的操作方法。在从预设文件中确定操作对象的操作方法时,可以先从缓存文件中获取,若从缓存文件中未获取到操作对象的操作方法,则可以从非缓存文件中获取。一种实现方式中,在确定出操作对象之后,判断缓存文件中是否存在该操作对象的指针所指向的不同操作环境的操作方法,若是,则根据操作对象的指针,从缓存文件中获取操作对象的指针所指向的不同操作环境的操作方法;否则,从非缓存文件中获取操作对象的指针所指向的不同操作环境的操作方法。
此外,预设文件中还可以包括操作对象所属的操作环境,也即在确定出业务系统的至少一个操作对象之后,可以针对任一个操作对象,从预设文件中确定该操作对象所属的操作环境,进而基于操作对象所属的操作环境和操作方法类型,从预设文件中确定操作对象的操作方法。
步骤403,根据操作对象的操作方法,生成操作对象的实施命令集;
在确定出操作对象的操作方法之后,可以根据操作指令中操作参数和操作对象的操作方法,生成操作对象的实施命令集。
步骤404,将实施命令集下发至操作对象。
本发明实施例中,操作指令中包括操作方法类型、操作参数,在确定操作指令对应的操作对象之前,可以先确定操作指令中操作方法类型、操作参数是否符合预设规则,比如,操作方法类型是否为正确的操作方法类型,操作参数是否为符合规格的参数。在对操作参数进行识别时,可以基于字符集,采用灵活的分隔符变量,识别操作指令中的操作参数,并将不符合规则的操作参数提示出来。
为了更好的解释本发明实施例,如图7中提供另一种流程,执行主体为适配器,具体如下:
参数识别:接收操作指令之后,对操作指令中的操作参数进行识别,识别操作指令中不符合预设规则的操作参数;
系统索引:包括两种索引形式,分别为命令集索引和场景索引,其中,命令集索引指的是基于不同操作环境的命令归集,向上呈现出统一的索引模式;场景索引指的是基于不同的操作场景,封装后向上呈现出统一的索引模式。两种索引形式的区别在于使用的通用性不同。适配器在接收到操作指令之后,会识别出当前的操作指令指示的是场景索引还是命令集索引,然后根据确定出的索引形式,向下执行操作适配。
操作适配:包括对象适配和方法适配。对于场景索引,每个操作场景对应业务系统,每个业务系统对应至少一个操作对象,基于操作指令中的操作场景标识和业务系统标识,确定操作指令对应的至少一个操作对象;针对任一个操作对象,根据操作对象所属的操作环境,以及操作指令中的操作方法类型,确定适用于操作对象的操作方法。
命令组装:在完成操作适配后,根据操作对象的操作方法和操作指令中的操作参数,组装生成针对操作对象的实施命令集。
批量执行:对各操作对象执行与之对应的实施命令集。
本发明实施例提供一种机构入网的运维场景,由于机构在入网场景中存在路由访问控制机制,运维系统需要为入网机构提供统一、可快速访问的入口。此处,机构在进行入网操作时,需要输入以下入网参数:需求标识(id)、目标地址(destination)、目标需求(action)。
在机构入网之前,适配器中会预先配置好入网的操作场景,比如,每个业务系统对应多个操作对象,每个操作对象的指针指向不同操作环境中的操作方法;构建操作场景库可以如图8所示,操作场景库中包括每个操作方法类型在不同操作环境下的操作方法。
构建适配器中该操作场景时,构建的路由访问接口为organroute(id,dest,demandaction),机构可以调用该路由访问接口,入网参数如上述需求标识、目标地址、目标需求。构建的功能函数为organrouteoperation(id,dest,demandaction),根据各类业务系统实现路由操作的调度;函数实现层包括unix路由操作(unixrouteoperation())、suse路由操作(suserouteoperation())、centos路由操作(centosrouteoperation()),函数实现层涉及的参数包括目标地址、网关、掩码、动作等,此外,与场景相匹配的为机构入网场景库,通过复用cmdb数据库,并额外新增需求集合和操作集合,实现适配器对于操作对象的访问。
将适配器纳入至运维系统,配置适配器的访问路径,可以快速实现适配器的功能。
上述技术方案中,通过封装不同操作环境下的操作方法,在接收到操作指令之后,自动识别操作指令对应的操作对象以及操作对象所属的操作环境,根据操作对象所属的操作环境和操作方法类型,自动匹配与操作对象所属操作环境相对应的操作方法,从而生成操作命令集,以下发至操作对象,该技术方案无需运维人员手动调用脚本以识别操作对象所属的操作环境且生成相对应的操作指令,降低对运维人员专业技术的要求,自动化生成的方式节省了大量的人力资源。进一步的,设置操作场景,运维人员只需要下发一条操作指令,即可以对多个操作对象进行批量操作。
基于同一发明构思,图9示例性的示出了本发明实施例提供的一种自动化运维装置的结构,该装置可以执行自动化运维方法的流程。
所述自动化运维装置,包括:
确定单元901和生成单元902;
所述确定单元901用于根据操作指令,确定所述操作指令对应的操作对象;根据所述操作对象所属的操作环境和所述操作指令中的操作方法类型,从预设文件中确定所述操作对象的操作方法;所述预设文件中包括各操作环境下的操作方法类型的操作方法;
所述生成单元902用于根据所述操作对象的操作方法,生成所述操作对象的实施命令集;将所述实施命令集下发至所述操作对象。
可选的,所述确定单元901具体用于:
根据所述操作指令中场景标识,确定所述场景标识对应的操作场景;
根据所述操作指令中业务系统标识,从所述操作场景中确定所述业务系统标识对应业务系统中的多个操作对象。
可选的,所述确定单元901具体用于:
根据所述操作对象的指针,从所述预设文件中获取所述操作对象的指针所指向的不同操作环境的操作方法;
根据所述操作对象所属的操作环境,从所述操作对象的指针所指向的不同操作环境的操作方法中确定出与所述操作对象所属的操作环境对应的所述操作方法类型下的操作方法。
可选的,所述预设文件包括缓存文件和非缓存文件;所述缓存文件中包括调用频率超过预设值的操作方法;所述非缓存文件中包括所述各操作环境下的操作方法类型的操作方法;
所述确定单元901具体用于:
判断所述缓存文件中是否存在所述操作对象的指针所指向的不同操作环境的操作方法,若是,则根据所述操作对象的指针,从所述缓存文件中获取所述操作对象的指针所指向的不同操作环境的操作方法;
否则,从所述非缓存文件中获取所述操作对象的指针所指向的不同操作环境的操作方法。
可选的,所述操作环境包括操作系统类型和/或数据库类型。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述自动化运维方法。
基于同一发明构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述自动化运维方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。