一种基于ansible的运维请求处理方法及装置与流程

文档序号:11544981阅读:188来源:国知局
一种基于ansible的运维请求处理方法及装置与流程

本发明涉及运维监控技术领域,特别是涉及一种基于ansible的运维请求处理方法及装置。



背景技术:

ansible是一种自动化运维工具,它能够实现批量系统配置、批量程序部署、批量运行命令等功能,在互联网行业广泛应用。ansible的工作原理是通过一台命令调度机器,基于ssh(secureshell,安全外壳协议)和scp(securecopy,安全拷贝)的方式,将命令拷贝到远程执行机器并进行远程执行调度。

现有运维请求处理方法,一般由前端请求直接调用ansible,但是,由于现有ansible的处理方法不能对请求中的任务进行分类,这就导致当执行机执行请求中的任务时,只能由一台执行机执行该请求的全部任务,造成运维效率低。



技术实现要素:

本发明实施例的目的在于提供一种基于ansible的运维请求处理方法及装置,以实现提高执行机的运维效率目的。具体技术方案如下:

一种基于ansible的运维请求处理方法,包括:

获取多个运维请求并对所述多个运维请求进行分类;

将经过分类的所述多个运维请求进行标识处理,生成多个具有标签的运维请求消息体,所述标签用于使执行集群识别所述运维请求的类型,所述执行集群由多台协同处理的计算机组成;

将所述具有标签的运维请求消息体发送至对应的执行集群,以使不同的所述执行集群对应处理所述具有标签的运维请求消息体中的命令。

优选地,所述获取多个运维请求并对所述多个运维请求进行分类,具体包括:

获取多个运维请求,所述运维请求中包括:运维请求命令代码、执行所述运维请求的目标机器列表;

将所述运维请求按照地域和/或任务类型进行分类,所述不同的地域为所述运维请求不同的发送地理区域,所述不同的任务类型为所述运维请求中包含的不同任务类型。

优选地,所述将经过分类的所述多个运维请求进行标识处理,生成多个具有标签的运维请求消息体,具体包括:

按照预设类型为所述经过分类的运维请求进行标识处理,生成具有标签的运维请求;

将所述具有标签的运维请求封装为运维请求消息体,所述运维请求消息体为activemq消息体。

优选地,所述将所述具有标签的运维请求消息体发送至对应的执行集群之前,所述运维请求处理方法还包括:

根据所述标签确定所述具有标签的运维请求消息体对应的执行集群。

优选地,所述将所述具有标签的运维请求消息体发送至对应的执行集群,以使不同的所述执行集群对应处理所述具有标签的运维请求消息体中的命令之后,所述基于ansible的运维请求处理方法还包括:

获取执行集群的处理结果;

确定所述处理结果为新的运维请求,将所述新的运维请求进行分类;

将经过分类的新的运维请求进行标识处理,生成具有标签的新的运维请求消息体;

将所述具有标签的新的运维请求消息体发送至对应的执行集群,以使不同的所述执行集群对应处理所述具有标签的新的运维请求消息体中的命令。

一种基于ansible的运维请求处理装置,包括:

第一获取模块,用于获取多个运维请求并对所述多个运维请求进行分类;

生成模块,用于将经过分类的所述多个运维请求进行标识处理,生成多个具有标签的运维请求消息体,所述标签用于使执行集群识别所述运维请求的类型,所述执行集群由多台协同处理的计算机组成;

第一发送模块,用于将所述具有标签的运维请求消息体发送至对应的执行集群,以使不同的所述执行集群对应处理所述具有标签的运维请求消息体中的命令。

优选地,所述第一获取模块,具体用于:

获取多个运维请求,所述运维请求中包括:运维请求命令代码、执行所述运维请求的目标机器列表;

将所述运维请求按照地域和/或任务类型进行分类,所述不同的地域为所述运维请求不同的发送地理区域,所述不同的任务类型为所述运维请求中包含的不同任务类型。

优选地,所述生成模块,具体用于:

按照预设类型为所述经过分类的运维请求进行标识处理,生成具有标签的运维请求;

将所述具有标签的运维请求封装为运维请求消息体,所述运维请求消息体为activemq消息体。

优选地,所述基于ansible的运维请求处理装置进一步包括:

确定模块,用于根据所述标签确定所述具有标签的运维请求消息体对应的执行集群。

优选地,所述基于ansible的运维请求处理装置,进一步包括:

第二获取模块,用于获取执行集群的处理结果;

分类模块,用于确定所述处理结果为新的运维请求,将所述新的运维请求进行分类;

标识模块,用于将经过分类的新的运维请求进行标识处理,生成具有标签的新的运维请求消息体;

第二发送模块,用于将所述具有标签的新的运维请求消息体发送至对应的执行集群,以使不同的所述执行集群对应处理所述具有标签的新的运维请求消息体中的命令。

本发明实施例提供的基于ansible的运维请求处理方法及装置,通过对运维请求进行分类,从而使执行集群对同一类运维请求集中处理,提高运维请求的处理效率;通过生成多个具有标签的运维请求消息体,在提高运维请求识别程度的同时,还可实现敏感执行集群的隔离,进一步提高运维请求处理的安全性;通过将处理结果确定为新的运维请求并对新的运维请求分类后发送至对应执行集群,能够实现多级任务的异步执行,进一步提高运维请求处理效率。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的基于ansible的运维请求处理方法的一种流程示意图;

图2为本发明实施例的基于ansible的运维请求处理方法的另一种流程示意图;

图3为本发明实施例的基于ansible的运维请求处理装置的一种结构示意图;

图4为本发明实施例的基于ansible的运维请求处理装置的另一种结构示意图;

图5为本发明实施例的基于ansible的运维请求处理装置的架构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

方法实施例一

本发明实施例提供的一种基于ansible的运维请求处理方法的一种具体实施例,参考图1,图1为本发明实施例的基于ansible的运维请求处理方法的一种流程示意图,包括:

s101、获取多个运维请求并对多个运维请求进行分类。

在基于ansible的运维管理技术领域中,运维请求通常先由数据中心发送给命令调度机器,再由命令调度机器将运维请求拷贝至远程执行机器,并通过远程执行器对业务服务器执行命令。运维请求是一种包含运维命令的请求,一般地,这些命令通常用来查询服务器的运行状态,或者用来使服务器执行某个动作。可选地,运维请求中还包含命令的代码、执行运维请求的目标机器列表,命令的代码用于业务服务器执行命令,目标机器列表用于确认执行这些运维请求的业务服务器,这些业务服务器提供具体的业务数据存储、处理功能。

本发明实施例中,获取多个运维请求后,会对运维请求进行分类。一般情况下,每条运维请求具有不同的特性,例如运维请求有可能来自不同地域的数据中心,或者,运维请求具有不同的任务类型,例如该运维请求用于查询某服务器的状态,或者用于使某服务器执行一项动作。因此,对获取的多个运维请求进行分类,能够将具有相同特性的运维请求归为一类,方便后续处理流程对同一类运维请求集中处理,提高处理效率。

其中,可选地,对运维请求进行分类的方法包括,将运维请求按照不同的获取地域或者不同的任务类型进行分类,也可以将运维请求按照不同的获取地域和不同的任务类型进行分类。举例说明,运维请求a来自广州数据中心,其任务类型为使业务服务器执行a服务,运维请求b来自上海数据中心,其任务类型为查询业务服务器的运作状态,运维请求c同样来自上海数据中心,其任务类型为使业务服务器执行a服务,运维请求d来自广州数据中心,其任务类型为使业务服务器执行b服务。如果按照不同的获取地域进行分类,可将b、c运维请求分为一类;如果按照不同的任务类型进行分类,可将a、c运维请求分为一类。如果将运维请求按照不同的获取地域和不同的任务类型进行分类,那么,因为a、d运维请求均来自广州,且都是使服务器执行某项服务,可将a、d分为一类。可见,本发明实施例具体的分类方法可根据实际应用情况而定,无论如何分类,只要能达到对分类后的运维请求产生整合效果,都属于本发明实施例的保护范围。

s102、将经过分类的多个运维请求进行标识处理,生成多个具有标签的运维请求消息体,其中,标签用于使执行集群识别运维请求的类型,执行集群由多台协同处理的计算机组成。

运维请求经过分类后,需要对应的执行集群识别这些分类才能有效地处理运维请求。因此,需要对运维请求进行标识处理。通过对分类后的运维请求进行标识处理,能够使执行集群有效识别出对应分类的运维请求,提高对运维请求的处理效率。可选地,将具有不同类型的运维请求打上其类型标签,并以运维请求消息体的形式封装生成,这样,每个运维请求便具有了用于识别其类型的标签,能够大大提高执行集群的识别程度。并且,本发明实施例还可实现敏感执行集群的隔离,即执行集群只处理对应标签的运维消息体,其它任何服务都不能在该执行集群执行。这样,能够大大提高涉及资金、帐号等敏感信息的任务的安全性。

具体地,可以将分类并打标签的运维请求封装为activemq消息体,并直接通过activemq总线发送至对应执行集群。其中,activemq消息体的封装形式可以为json格式数据,例如:{taskid:xxx,host_inventory:xxx,tag:xx},其中,taskid表示每个运维请求所拥有的唯一的id,host_inventory表示执行集群中的机器列表,tag是自定义的标签,用以对运维请求分类,如任务类型、地域等。

本发明实施例中,执行集群是由一组具有协同处理能力的计算机组成的计算机阵列。执行集群可以根据运维请求的分类进行预设,例如,预先设置执行集群a用于处理具有同一类标签的运维请求,则将多台计算机组成集群a,专门用于接收、识别并处理具有同一类标签的运维请求消息体。

s103、将具有标签的运维请求消息体发送至对应的执行集群,以使不同的执行集群对应处理具有标签的运维请求消息体中的命令。

执行集群根据任务类型不同,一般会存在多个,因此,生成多个具有标签的运维请求消息体后,需要将这些运维请求消息体发送至对应的执行集群,从而使不同的执行集群对应处理运维请求消息体中的命令,进而提高运维请求的处理效率。例如,运维请求a的任务类型为使业务服务器执行a服务,则运维请求a的标签可设置为“执行a服务”;运维请求b的任务类型为查询业务服务器的运作状态,则运维请求b的标签可设置为“查询业务服务器的运作状态”。执行集群a用于处理包含使业务服务器执行a服务运维命令的运维请求,执行集群b用于处理包含查询业务服务器的运作状态运维命令的运维请求。那么,可以将包含“执行a服务”标签的运维请求a发送至执行集群a,将包含“查询业务服务器的运作状态”标签的运维请求b发送至执行集群b,从而使执行集群a和执行集群b分别处理所属标签的运维请求,达到对应处理的目的。

此外,当执行集群有多个时,在将具有标签的运维请求消息体发送至对应的执行集群之前,可选地,通过标签确定具有标签的运维请求消息体所对应的执行集群。例如,执行集群a用于处理具有标签a的运维请求,执行集群b用于处理具有标签b的运维请求,为了避免错误地将具有标签b的运维请求发送至执行集群a,在发送运维请求前,发送方和接收方通过相互确认都具有相同的标签,即可确保发送至正确对应的执行集群。

本发明方法实施例一,通过对运维请求进行分类,将具有相同类别的运维请求归为一类,从而使执行集群对同一类运维请求集中处理,提高处理效率;通过将分类后的运维请求进行标识处理,生成多个具有标签的运维请求消息体,在提高运维请求识别程度的同时,还可实现敏感执行集群的隔离,进一步提高运维请求处理的安全性。

方法实施例二

本发明实施例提供的基于ansible的运维请求处理方法的另一种具体实施例,参考图2,图2为本发明实施例的基于ansible的运维请求处理方法的另一种流程示意图,在方法实施例一的基础上,进一步包括:

s201、获取执行集群的处理结果。

本步骤位于方法实施例一的s103之后,执行集群处理具有标签的运维请求消息体中的命令,并对业务服务器执行该命令,然后将处理结果返回至activemq的消息队列中。对于需要多步处理的任务,前一步的处理结果可能就是下一步的处理请求,因此,系统会获取该处理结果,为下一步判断做准备。举例说明,甲运维请求共需a、b两步处理完成,乙运维请求共需b步一步处理完成,当甲处理完a步后,得到的结果是b步,那么就可以将b步发送到执行乙请求的集群中去处理,从而避免执行甲运维请求的集群不仅需要处理a步还需处理b步的情况发生,进而提高运维请求的处理效率。

s202、确定处理结果为新的运维请求,将新的运维请求进行分类。

如前文所述,对于需要多步处理的任务,前一步的处理结果可能就是下一步的处理请求。因此,需要确定获取的处理结果为新的运维请求。如果某个执行集群的处理结果就是另一个执行集群的处理请求,则可认为该处理结果为新的运维请求。当确定处理结果为新的运维请求后,将新的运维请求再次进行分类。可选地,将运维请求按照不同的获取地域、不同的任务类型进行分类、不同的用途进行分类,通过分类,能够将具有相同特性的运维请求归为一类,方便后续处理流程对同一类运维请求集中处理,提高处理效率。

s203、将经过分类的新的运维请求进行标识处理,生成具有标签的新的运维请求消息体。

本步骤与方法实施例一中步骤s102类似,不同点在于,是将新的运维请求进行标识处理,并生成新的具有标签的运维请求消息体。这里,新的运维请求、新的具有标签的运维请求消息体是相对于原有运维请求、具有标签的运维请求消息体的概念,它们的本质并没有不同。通过具有标签的新的运维请求消息体,能够将原本需要在一个执行集群中处理的任务,分别由处理不同步骤的执行集群分布执行,从而提高运维请求的处理效率。

s204、将具有标签的新的运维请求消息体发送至对应的执行集群,以使不同的执行集群对应处理具有标签的新的运维请求消息体中的命令。

本步骤与方法实施例一中步骤s103类似。具有标签的新的运维请求消息体同样具有用于确认其类型的标签,将具有标签的新的运维请求消息体发送至对应的执行集群后,执行集群对应处理这些新的运维请求消息体中的命令,并对业务服务器执行该命令,然后将处理结果再次返回至activemq的消息队列中,再次确认获取的处理结果是否为新的运维请求,直至运维请求处理完成。通过对这种多级任务的异步执行,能够将原本需要在一个执行集群中处理的任务,分别由处理不同步骤的执行集群执行,从而提高运维请求的处理效率。

本发明方法实施例二,通过对业务服务器的处理结果再次获取并判断是否为新的运维请求,并对确定的新的运维请求再次分类并发送至对应执行集群,能够将原本需要在一个执行集群中处理的任务,分别由处理不同步骤的执行集群分布执行,从而提高运维请求的处理效率。

装置实施例一

本发明实施例提供的一种基于ansible的运维请求处理装置的一种具体实施例,与图1所示流程相对应,参考图3,图3为本发明实施例的基于ansible的运维请求处理装置的一种结构示意图,包括:

第一获取模块301,用于获取多个运维请求并对多个运维请求进行分类。

其中,第一获取模块301,具体用于:

获取多个运维请求,运维请求中包括:运维请求命令代码、执行运维请求的目标机器列表。

将运维请求按照地域和/或任务类型进行分类,不同的地域为运维请求不同的发送地理区域,不同的任务类型为运维请求中包含的不同任务类型。

生成模块302,用于将经过分类的多个运维请求进行标识处理,生成多个具有标签的运维请求消息体,标签用于使执行集群识别运维请求的类型,执行集群由多台协同处理的计算机组成。

其中,生成模块302,具体用于:

按照预设类型为经过分类的运维请求进行标识处理,生成具有标签的运维请求。

将具有标签的运维请求封装为运维请求消息体,运维请求消息体为activemq消息体。

第一发送模块303,用于将具有标签的运维请求消息体发送至对应的执行集群,以使不同的执行集群对应处理具有标签的运维请求消息体中的命令。

此外,本发明装置实施例一的基于ansible的运维请求处理装置还包括:

确定模块304,用于根据标签确定具有标签的运维请求消息体对应的执行集群。

本发明装置实施例一提供的基于ansible的运维请求处理装置用于实现本发明方法实施例一提供的基于ansible的运维请求处理方法的处理,其实现原理和技术效果类似,此处不再赘述。

装置实施例二

本发明实施例提供的一种基于ansible的运维请求处理装置的另一种具体实施例,与图2所示流程相对应,参考图4,图4为本发明实施例的基于ansible的运维请求处理装置的另一种结构示意图,在装置实施例一的基础上,进一步包括:

第二获取模块401,用于获取执行集群的处理结果。

分类模块402,用于确定处理结果为新的运维请求,将新的运维请求进行分类。

标识模块403,用于将经过分类的新的运维请求进行标识处理,生成具有标签的新的运维请求消息体。

第二发送模块404,用于将具有标签的新的运维请求消息体发送至对应的执行集群,以使不同的执行集群对应处理具有标签的新的运维请求消息体中的命令。

本发明装置实施例二提供的基于ansible的运维请求处理装置用于实现本发明方法实施例二提供的基于ansible的运维请求处理方法的处理,其实现原理和技术效果类似,此处不再赘述。

本发明实施例还提供了一种基于ansible的运维请求处理装置的架构示意图,参考图5,图5为本发明实施例的基于ansible的运维请求处理装置的架构示意图,包括:调度模块501,activemq消息总线502和执行集群503。

调度模块501用于获取多个运维请求并对这些运维请求分类,然后将分类后的多个运维请求通过activemq消息总线502发送至执行集群503中对应的执行集群,并由不同的执行集群对应处理多个运维请求。其中,activemq消息总线502是一种开源的消息总线,具有广泛的连接模式,包括http、https、jgroups、jxta、muticast、ssl、tcp、udp、xmpp等,同时能够提供高效的、可扩展的、稳定的和安全的企业级消息通信,因此采用这种消息总线形式。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

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