基于堡垒机的自动化配置管理方法及装置与流程

文档序号:17923096发布日期:2019-06-15 00:14阅读:930来源:国知局
基于堡垒机的自动化配置管理方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种基于堡垒机的自动化配置管理方法及装置。



背景技术:

堡垒机是一种大型数据中心面向运维用户的运维安全审计产品,运维用户通过堡垒机的集中管理和授权管理功能,完成对大量设备的运维管理操作,同时,堡垒机能够审计运维用户的操作过程。传统的运维模式中,运维用户直接通过本地设备连接远程服务器,进行运维管理操作,整个操作过程不可见、不可控,存在很大风险;采用堡垒机来进行运维,堡垒机充当了中间代理的角色,运维用户在本地设备先通过与堡垒机连接,从而间接建立与远程服务器的连接,进行运维管理操作,并且,堡垒机可以完全记录运维用户的完整运维过程。

ansible是新出现的自动化运维工具,可在多台主机上执行批量操作,这些操作包括:执行命令、执行用户上传的脚本、上传文件到多台主机、从多台主机下载相同的文件等等,且保证以上操作均能够通过ssh、telnet通道完成,无需在目标主机安装任何插件。将ansible工具集成在堡垒机里面,通过前端管理界面输入命令,调用后端ansible工具处理运维任务、账号收集或配置备份,可同时提升配置管理效率和安全水平。

it运维人员要满足配置管理的安全合规性要求,必须通过堡垒机连接服务器进行运维管理操作;而采用脚本等自动化运维工具,则无法使用堡垒机,远程操作无法监控记录,又不满足安全合规性要求。

1、运维人员使用传统堡垒机只能手动完成一些繁琐、费时的操作,无法满足当前自动化运维特别是批量配置管理的要求。传统堡垒机对于运维人员而言,安全性虽然大大加强,但是运维效率变得低下。

2、传统堡垒机面临运维人员对于服务器、虚拟机的口令管理难题,无法对托管服务器、虚拟机、网络设备进行账号巡检,导致因外包人员工作后而保留服务器、虚拟机登录后门而带来的安全风险。

3、备份网络设备的配置信息是网络日常维护工作中的一项重要内容。备份工作通常采用手工或脚本备份的方式完成,很难做到备份文件的统一管理。传统堡垒机只能通过手工或脚本备份的方式。随着网络规模不断扩大,网络设备数量不断增多,网络维护人员需要花费越来越多的时间用于备份工作。



技术实现要素:

本发明实施例提供一种基于堡垒机的自动化配置管理方法及装置,用以解决现有技术中的上述问题。

本发明实施例提供一种基于堡垒机的自动化配置管理方法,包括:

前端管理界面提供自动化运维入口,收集用户输入,根据运维任务构造运维任务请求;

thrift服务接收前端发来的任务请求并进行解析,调用ansible接口;

ansible接收thrift服务的调用,并通过ssh登录目标主机执行运维任务,任务结果以json格式返回thrift服务;

thrift将ansible执行后的任务结果以json格式返回至前端管理界面;

前端管理界面显示所述任务结果。

优选地,前端管理界面提供自动化运维入口,收集用户输入,构造运维任务请求具体包括:

在用户通过https协议登录前端管理界面后,前端管理界面获取用户输入内容,通过rpc远程过程调用协议将json格式的运维任务请求发送至后端的thrift。

优选地,所述方法进一步包括:创建thrift服务。

优选地,创建thrift服务具体包括:

根据thrift的语法规范编写脚本文件,其中定义了该服务的三个方法,每个方法包含一个方法名,参数列表和返回类型;

使用python创建thrift服务,使用thrift工具thrift–genpyautotask.thrift编译autotask.thrift,生成相应的taskservice.py文件,该文件包含了在autotask.thrift文件中描述的服务taskservice的接口定义,即taskservice.iface接口,以及服务调用的底层通信细节,包括客户端的调用逻辑taskservice.client以及服务器端的处理逻辑taskservice.processor,用于构建客户端和服务器端的功能;

创建taskhandler.py文件并实现taskservice.py中的taskservice.iface接口;

创建服务器端实现代码,将taskhandler作为具体的处理器传递给thrift服务器;

与客户端约定好通信协议并完成代码编写后运行服务器,客户端由前端java实现,后端thrift服务开始在9090端口上提供服务,内部通过taskhandler中对接口函数的实现,完成前端界面与ansible运维工具的联动。

优选地,所述运维任务具体包括:账户收集、普通运维任务和网络设备配置备份;具体地:

账户收集是指:完成从目标主机中收集账户以及对应账户主目录下配置的免密登录sshkey,并将原始收集结果与堡垒机已录入信息进行比对,通过最终解析的结果,进行对合法账户一键录入,对非法账户一键删除的管理操作;

普通运维任务是指:通过任何支持的命令和/或可执行脚本,执行相应的运维任务;

网络设备配置备份是指:定时或周期的对网络设备执行配置备份操作,并将备份文件发送至指定的服务器保存。

本发明实施例还提供一种基于堡垒机的自动化配置管理装置,包括:

前端管理界面,用于提供自动化运维入口,收集用户输入,根据运维任务构造运维任务请求;显示任务结果;

thrift服务模块,用于接收前端管理界面发来的任务请求并进行解析,调用ansible接口,将ansible执行后的任务结果以json格式返回至前端管理界面;

ansible模块,用于接收thrift服务的调用,并通过ssh登录目标主机执行运维任务,任务结果以json格式返回thrift服务。

优选地,前端管理界面具体用于:

在用户通过https协议登录前端管理界面后,获取用户输入内容,通过rpc远程过程调用协议将json格式的运维任务请求发送至后端的thrift。

优选地,所述装置进一步包括:

创建模块,用于创建thrift服务。

优选地,创建模块具体用于:

根据thrift的语法规范编写脚本文件,其中定义了该服务的三个方法,每个方法包含一个方法名,参数列表和返回类型;

使用python创建thrift服务,使用thrift工具thrift–genpyautotask.thrift编译autotask.thrift,生成相应的taskservice.py文件,该文件包含了在autotask.thrift文件中描述的服务taskservice的接口定义,即taskservice.iface接口,以及服务调用的底层通信细节,包括客户端的调用逻辑taskservice.client以及服务器端的处理逻辑taskservice.processor,用于构建客户端和服务器端的功能;

创建taskhandler.py文件并实现taskservice.py中的taskservice.iface接口;

创建服务器端实现代码,将taskhandler作为具体的处理器传递给thrift服务器;

与客户端约定好通信协议并完成代码编写后运行服务器,客户端由前端java实现,后端thrift服务开始在9090端口上提供服务,内部通过taskhandler中对接口函数的实现,完成前端界面与ansible运维工具的联动。

优选地,所述运维任务具体包括:账户收集、普通运维任务和网络设备配置备份;具体地:

账户收集是指:完成从目标主机中收集账户以及对应账户主目录下配置的免密登录sshkey,并将原始收集结果与堡垒机已录入信息进行比对,通过最终解析的结果,进行对合法账户一键录入,对非法账户一键删除的管理操作;

普通运维任务是指:通过任何支持的命令和/或可执行脚本,执行相应的运维任务;

网络设备配置备份是指:定时或周期的对网络设备执行配置备份操作,并将备份文件发送至指定的服务器保存。

采用本发明实施例,将堡垒机技术和自动化配置管理技术结合利用,集成thrift和ansible技术,实现命令与脚本组合,批量完成主机复杂的运维操作,并将结果返回展示界面。能实现对大量主机的账户集中管理,自动收集账号、免密登录sshkey,运维人员能通过本发明得到最终解析的结果,实现对合法账号一键录入,对非法账号一键删除等管理操作,避免账户安全风险。能实现网络设备配置信息的自动备份,无需人工手动备份,从而提高网络设备配置管理效率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是本发明实施例中堡垒机自动化运维架构的示意图;

图2是本发明实施例中堡垒机自动化运维管理中账户收集的示意图;

图3是本发明实施例中堡垒机自动化运维管理中运维任务的示意图;

图4是本发明实施例中堡垒机自动化运维管理中网络设备配置备份的示意图。

具体实施方式

本发明实施例提供了一种基于堡垒机的自动化配置管理方法,与堡垒机系统结合,具体地:

1、本发明实施例让堡垒机支持对托管服务器、虚拟机、网络设备执行批量命令、脚本,或者是命令和脚本的组合。通过将运维任务与执行计划关联,可以设定运维任务定时执行或者是周期执行。当有批量任务的时候,它既可以让运维工作更加高效快捷,又可以让企业的运维安全、合规。

2、本发明实施例在堡垒机上设置网络设备配置备份任务,可对一批网络设备(路由器和交换机)的配置进行自动或手动定期备份。

3、本发明实施例让堡垒机能够自动收集服务器上的账号,将有效账号保存至堡垒机系统,删除僵尸账号,并可定期修改密码,账户的自动化收集和管理的方式降低了手工录入管理的出错率,提高了效率和保密性。

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

在本发明实施例中,自动化运维后端是基于thrift+ansible完成的。

a)ansible

在实际运维场景中,往往需要在多台主机上要执行相同的操作,这些操作包括:执行命令、执行用户上传的脚本、上传文件到多台主机、从多台主机下载相同的文件等等,且以上操作能够在ssh通道上完成,无需在目标主机安装任何插件。ansible可实现以上配置管理功能。

ansible是新出现的自动化运维工具,基于python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,它提供很多标准模块,如:command、shell、script、copy和fetch等,使用它们可以很方便地完成批量系统配置、批量程序部署、批量运行命令等运维任务。ansible主要提供两种执行方式:ad-hoc和playbook。ad-hoc方式即为临时运维任务,该方式无需保存任务即可执行,只要提供任务执行参数即可,输出的内容即为每台主机的执行结果的汇总;playbook方式可以提供复杂的运维的任务,需要将运维任务编排进playbook中才能执行。堡垒机自动化运维目前仅采用ad-hoc方式。

b)thrift

选定了后端的自动化运维工具,如何与前端进行服务交互也是自动化配置管理功能的重要环节,为了实现高效、安全、专业的前后端联动,thrift成为一个非常好的选择。

目前流行的服务调用方式有很多种,例如基于soap消息格式的webservice,基于json消息格式的restful服务等。其所用到的数据传输方式包括xml,json等。本发明采用了facebook开发的远程服务调用框架apachethrift,它采用接口描述语言定义并创建服务,支持可扩展的跨语言服务开发,所包含的代码生成引擎可以在多种语言中,如c++,java,python,php,ruby,erlang,perl,haskell,c#,cocoa,smalltalk等创建高效的、无缝的服务,其传输数据采用二进制格式,相对xml和json体积更小,对于高并发、大数据量和多语言的环境更有优势。

基于以上因素,堡垒机的自动化运维,最终采用了ansible作为后端的自动化运维工具,thrift提供服务调用,选用python编写服务端,服务端接收前端java发来的任务请求,并调用ansible接口,在真实目标主机上执行运维任务,最终将执行结果经处理后返回到前端管理界面,thrift充当前后端联动的接口。

堡垒机自动化运维架构如图1所示,功能及流程如下:

步骤1,前端管理界面提供自动化运维入口,收集用户输入,构造运维任务请求,并展示任务执行结果;用户users通过https协议登录前端管理界面,并输入内容,前端管理界面通过rpc远程过程调用协议将json格式的req请求发送至后端的thrift,后端处理完后将res结果以json格式返回,并显示在前端管理界面。

步骤2,thrift提供服务调用,作为前端管理界面与ansible的通信接口,thrift接收前端发来的任务请求,并调用ansible接口,将ansible执行后的任务结果以json格式返回至前端管理界面。

步骤3,ansible作为自动化运维工具,接收thrift服务的调用,并通过ssh登录目标主机执行运维任务,任务结果以json格式返回thrift服务。

自动化运维的后端工作原理具体如下:

自动化运维后端工作原理如下,使用thrift提供服务,接收前端管理界面的调用请求,thrift服务解析输入数据,调用ansible接口完成运维任务,将结果解析后返回至前端管理界面。

要创建一个thrift服务,首先根据thrift的语法规范编写脚本文件。其中定义了该服务的三个方法,每个方法包含一个方法名,参数列表和返回类型。本技术使用python创建thrift服务,因此使用thrift工具thrift–genpyautotask.thrift编译autotask.thrift,就会生成相应的taskservice.py文件。该文件包含了在autotask.thrift文件中描述的服务taskservice的接口定义,即taskservice.iface接口,以及服务调用的底层通信细节,包括客户端的调用逻辑taskservice.client以及服务器端的处理逻辑taskservice.processor,用于构建客户端和服务器端的功能。

其次,创建taskhandler.py文件并实现taskservice.py中的taskservice.iface接口;

然后,创建服务器端实现代码,将taskhandler作为具体的处理器传递给thrift服务器。

最后,与客户端约定好通信协议并完成代码编写后运行服务器,客户端由前端java实现,后端thrift服务开始在9090端口上提供服务,内部通过taskhandler中对接口函数的实现,完成前端界面与ansible运维工具的联动,实现堡垒机的自动化运维。

在本发明中,自动化运维被分为三大功能模块:账户收集、运维任务和网络设备配置备份。具体的业务流程如下:

1、前端管理界面收集用户输入,并按照约定的格式;

2、连接thrift服务,调用接口,传入封装好的输入请求;

3、thrift服务解析输入请求并实例化对象,调用函数;

4、ansible通过ssh登录到远程主机,执行对应的命令或收集账户,并将原始扫描结果返回到thrift服务;

5、thrift服务对原始结果进行解析后返回至前端管理界面。

账户收集,是一项特定的运维任务,完成从目标主机中收集账户以及对应账户主目录下配置的免密登录sshkey,并将原始收集结果与堡垒机已录入信息进行比对,运维人员可通过最终解析的结果,对合法账户一键录入,对非法账户一键删除等管理操作。如下图2所示,账户收集任务可选定目标主机,自动或手动对目标主机上的账户收集,并对收集的账户导入或删除。

运维任务,则可以是任何支持的命令或可执行脚本,用户可通过该功能实现灵活的运维任务。如下图3所示,堡垒机能够将支持命令与脚本组合,完成批量主机复杂的操作任务,同时,脚本还可以指定执行参数。

网络设备配置备份,可定时或周期的对网络设备执行配置备份操作,并将备份文件发送至指定的服务器保存;如下图4所示,新增开启配置备份任务,关联到指定网络设备,设置执行方式然后保存,自动化运维功能将按策略执行任务,定期登录机器备份配置。

综上所述,it运维的效率和质量在it生产和运营过程中非常重要,提高效率,保证质量和安全性是企业对每个it运维工程师的职业要求,所以有必要在运维中省略那些繁琐、重复而简单的工作,这些工作占用了大量的精力和时间,而且价值还不高。本发明能将it运维工程师从以往的“救火”模式中解救,将很多低效操作以自动化方式取代,从而建立一个管理规范化、工作流程化、人员专业化和任务自动化的it运维机制。具体优点如下:

1、本发明解决服务器运维人员对于服务器、虚拟机的口令管理难题,避免因外包人员工作后而保留服务器、虚拟机登录后门而带来的安全风险,同时可以对账户进行批量管理。

2、本发明满足运维人员复杂批量操作的需求,方便实现对多台服务器的升级、备份等工作任务,同时提供智能的运维操作和脚本执行,大大提高运维人员的工作效率。

3、本发明也提供了网络设备配置信息备份功能,通过任务的方式,智能地实现各种网络设备(支持主流的思科、华为和华三的交换机和路由器)配置信息的自动备份,从而有效提高网络运维效率。当设备出现故障时,更换设备快速恢复环境,也对误操作之后快速恢复前一天的配置起到帮助。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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