一种运维作业方法及系统与流程

文档序号:20276771发布日期:2020-04-07 14:35阅读:212来源:国知局
一种运维作业方法及系统与流程

本发明涉及计算机技术领域,尤其涉及一种运维作业方法及系统。



背景技术:

随着公司业务的发展,业务越来越多,所用到的服务器也随着越来越多。服务器多就会给运维人员的日常工作带来很多重复而繁琐运维任务,加大运维人员的工作量。

目前,运维人员一般用shell或其它工具登录到各个服务器,把事先写好的shell脚本或python脚本用工具一个一个的上传到各个服务器上,再一个一个的在各个服务器上执行,并把需要的输出结果一个一个的收集起来。

这种方式存在如下缺点:

1.运维人员要一个一个登录服务器、上传文件、执行、收集数据,造成很多重复的工作,浪费运维人员的时间。

2.运维人员一个一个的操作,可能会导致某个服务器漏操作,造成人为的失误。

3.手工上传的脚本文件在各服务器上可能会乱放,造成脚本文件混乱和执行脚本时可能执行错脚本。

4.没有一个统一的地方记录脚本执行日志,不能追溯某个人在什么时间用哪个脚本对哪些服务器执行什么操作和输出什么结果。



技术实现要素:

针对上述问题,本发明的目的在于提供一种运维作业方法及系统,能够使得作业平台自动获取服务器信息,并通过作业平台授权管理作业脚本,批量执行作业脚本并自动收集作业脚本输出的数据。

本发明实施例提供了一种运维作业方法,包括:

作业平台获取运维人员从作业列表中点击的待执行的作业脚本,并将所述待执行的作业脚本发送给ansible中间件;

所述ansible中间件将所述作业脚本发送至对应的服务器;

所述服务器接收所述作业脚本后,执行所述作业脚本,并向ansible中间件返回服务器作业信息以及作业结果;

所述ansible中间件将所述服务器作业信息发送至redis中间件进行缓存以及将所述作业结果返回至作业平台;

所述作业平台根据本地预存的服务器信息对所述作业结果进行存储,以使得作业结果与服务器信息实现自动关联。

优选地,还包括:

所述服务器在初始化时,通过调用作业平台的api向作业平台传输参数;其中,所述参数至少包括服务器的ip;

所述作业平台根据所述参数向ansible中间件发起获取服务器信息的请求;

所述ansible中间件根据所述请求从服务器获取服务器信息,并将该所述服务器信息缓存至redis中间件以及向所述作业平台发送通知;

所述作业平台根据所述通知从所述redis中间件获取服务器信息进行保存。

优选地,还包括:

作业平台获取当前登录的运维人员的账号,并根据所述运维人员的账号向运维人员的作业列表配置对应权限的作业脚本;其中,管理员授权给运维人员对应的作业脚本的查看、修改、删除、执行的权限,如果运维人员如果没有对应的权限,在作业列表中无法执行对应的作业脚本。

优选地,在点击要执行的作业脚本后,会进入作业脚本操作界面,作业脚本操作界面有作业脚本的详细信息、执行记录、可操作功能;

在点击执行作业脚本后,会跳转到作业执行界面,作业执行界面包括供选择的服务器;

在选择服务器后,显示后台正在执行的业务操作信息。

优选地,在进入作业脚本操作界面后,还包括对作业脚本填入参数的操作。

本发明实施例还提供了一种运维作业系统,包括作业平台、ansible中间件、redis中间件以及至少一个拥有执行作业的服务器;其中,

所述作业平台,用于获取运维人员从作业列表中点击的待执行的作业脚本,并将所述待执行的作业脚本发送给ansible中间件;

所述ansible中间件,用于将所述作业脚本发送至对应的服务器;

所述服务器,用于接收所述作业脚本后,执行所述作业脚本,并向ansible中间件返回服务器作业信息以及作业结果;

所述ansible中间件,用于将所述服务器作业信息发送至redis中间件进行缓存以及将所述作业结果返回至作业平台;

所述作业平台,还用于根据本地预存的服务器信息对所述作业结果进行存储,以使得作业结果与服务器信息实现自动关联。

优选地,所述服务器,还用于在初始化时,通过调用作业平台的api向作业平台传输参数;其中,所述参数至少包括服务器的ip;

所述作业平台,还用于根据所述参数向ansible中间件发起获取服务器信息的请求;

所述ansible中间件,还用于根据所述请求从服务器获取服务器信息,并将该所述服务器信息缓存至redis中间件以及向所述作业平台发送通知;

所述作业平台,还用于根据所述通知从所述redis中间件获取服务器信息进行保存。

优选地,所述作业平台,还用于获取当前登录的运维人员的账号,并根据所述运维人员的账号向运维人员的作业列表配置对应权限的作业脚本;其中,管理员授权给运维人员对应的作业脚本的查看、修改、删除、执行的权限,如果运维人员如果没有对应的权限,在作业列表中无法执行对应的作业脚本。

优选地,在点击要执行的作业脚本后,会进入作业脚本操作界面,作业脚本操作界面有作业脚本的详细信息、执行记录、可操作功能;

在点击执行作业脚本后,会跳转到作业执行界面,作业执行界面包括供选择的服务器;

在选择服务器后,显示后台正在执行的业务操作信息。

优选地,在进入作业脚本操作界面后,还包括对作业脚本填入参数的操作。

上述一个实施例中,作业脚本的操作以及作业结果的接收保存都是基于作业平台实现的,因此可以实现作业脚本的批量执行以及作业结果的批量接收。此外,由于作业平台还存储有相关的服务器信息,因此可以统一记录脚本执行日志,能追溯某个人在什么时间用那个作业脚本对哪些服务器执行什么操作和输出什么结果。即基于本实施例,能够减少运维人员做重复工作造成人力资源的浪费,减少运维人员出错的机率,增加作业脚本对服务器的安全操作。

附图说明

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

图1是本发明第一实施例提供的运维作业方法的一种流程示意图。

图2是本发明第一实施例提供的运维作业方法的另一种流程示意图。

具体实施方式

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

请参阅图1,本发明第一实施例提供了一种运维作业方法,包括:

s101,作业平台获取运维人员从作业列表中点击的待执行的作业脚本,并将所述待执行的作业脚本发送给ansible中间件。

在本实施例中,运维人员在登录作业平台后可以查看作业列表内的作业脚本,并对有权限的作业脚本进行操作。其中,管理员拥有所有作业脚本操作的最高权限,管理员可以将作业脚本授权给对应的运维人员,只有有权限的运维人员才可以在其作业列表中对作业脚本进行操作(例如查看、修改、删除、执行),这样实现了运维人员可以管理各自的作业脚本。而且,运维人员在执行作业脚本前会先发起执行流程,待管理员审核通过后才能执行对应的作业脚本。

在本实施例中,运维人员点击要执行的作业脚本,进入作业脚本操作界面,界面有作业脚本的详细信息、执行记录、可操作功能。然后运维人员点击执行,会跳转到作业执行界面。在作业执行界面,运维人员可以根据实际需要填入作业脚本的参数,如果没有需要填入的参数也可不填。然后运维人员选择执行作业的服务器后,点击开始执行。

s102,所述ansible中间件将所述作业脚本发送至对应的服务器。

s103,所述服务器接收所述作业脚本后,执行所述作业脚本,并向ansible中间件返回服务器作业信息以及作业结果。

s104,所述ansible中间件将所述服务器作业信息发送至redis中间件进行缓存以及将所述作业结果返回至作业平台。

s105,所述作业平台根据本地预存的服务器信息对所述作业结果进行存储,以使得作业结果与服务器信息实现自动关联。

在本实施例中,所述作业平台首先需要实现服务器信息的自动收集。

具体地,如图2所示,所述服务器在初始化时,会执行初始化脚本,通过调用作业平台的api向作业平台传输参数;其中,所述参数至少包括服务器的ip,此外还可以包括用户以及端口等。所述作业平台根据所述参数向ansible中间件发起获取服务器信息的请求;所述ansible中间件根据所述请求从服务器获取服务器信息,并将该所述服务器信息缓存至redis中间件以及向所述作业平台发送通知,所述作业平台在接收到所述通知后,可从所述redis中间件获取服务器信息进行保存,如此即实现了作业平台自动获取服务器信息。

在本实施例中,所述作业平台在获得服务器的作业结果后,可根据本地保存的服务器信息对作业结果进行收集存储。

上述实施例中,作业脚本的操作以及作业结果的接收保存都是基于作业平台实现的,因此可以实现作业脚本的批量执行以及作业结果的批量接收。此外,由于作业平台还存储有相关的服务器信息,因此可以统一记录脚本执行日志,能追溯某个人在什么时间用那个作业脚本对哪些服务器执行什么操作和输出什么结果。即基于本实施例,能够减少运维人员做重复工作造成人力资源的浪费,减少运维人员出错的机率,增加作业脚本对服务器的安全操作。

本发明第二实施例还提供了一种运维作业系统,包括作业平台、ansible中间件、redis中间件以及至少一个拥有执行作业的服务器;其中,

所述作业平台,用于获取运维人员从作业列表中点击的待执行的作业脚本,并将所述待执行的作业脚本发送给ansible中间件;

所述ansible中间件,用于将所述作业脚本发送至对应的服务器;

所述服务器,用于接收所述作业脚本后,执行所述作业脚本,并向ansible中间件返回服务器作业信息以及作业结果;

所述ansible中间件,用于将所述服务器作业信息发送至redis中间件进行缓存以及将所述作业结果返回至作业平台;

所述作业平台,还用于根据本地预存的服务器信息对所述作业结果进行存储,以使得作业结果与服务器信息实现自动关联。

优选地,

所述服务器,还用于在初始化时,通过调用作业平台的api向作业平台传输参数;其中,所述参数至少包括服务器的ip;

所述作业平台,还用于根据所述参数向ansible中间件发起获取服务器信息的请求;

所述ansible中间件,还用于根据所述请求从服务器获取服务器信息,并将该所述服务器信息缓存至redis中间件以及向所述作业平台发送通知;

所述作业平台,还用于根据所述通知从所述redis中间件获取服务器信息进行保存。

优选地,所述作业平台,还用于获取当前登录的运维人员的账号,并根据所述运维人员的账号向运维人员的作业列表配置对应权限的作业脚本;其中,管理员授权给运维人员对应的作业脚本的查看、修改、删除、执行的权限,如果运维人员如果没有对应的权限,在作业列表中无法执行对应的作业脚本。

优选地,在点击要执行的作业脚本后,会进入作业脚本操作界面,作业脚本操作界面有作业脚本的详细信息、执行记录、可操作功能;

在点击执行作业脚本后,会跳转到作业执行界面,作业执行界面包括供选择的服务器;

在选择服务器后,显示后台正在执行的业务操作信息。

优选地,在进入作业脚本操作界面后,还包括对作业脚本填入参数的操作。

本实施例中,作业脚本的操作以及作业结果的接收保存都是基于作业平台实现的,因此可以实现作业脚本的批量执行以及作业结果的批量接收。此外,由于作业平台还存储有相关的服务器信息,因此可以统一记录脚本执行日志,能追溯某个人在什么时间用那个作业脚本对哪些服务器执行什么操作和输出什么结果。即基于本实施例,能够减少运维人员做重复工作造成人力资源的浪费,减少运维人员出错的机率,增加作业脚本对服务器的安全操作。

需说明的是,以上所描述的实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

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