【技术领域】
本发明涉及一种用于批量运维远程主机的方法,本发明还涉及到一种用于批量运维远程主机的管理系统。
背景技术:
在企业、医院、政府部门等组织机构,需要对内部人员使用的计算机进行运维管理。
目前常规的运维方式主要是:运维操作人员在服务器主机端依次向每一台远程主机发送需要运维项目的脚本,运维脚本在远程主机运行之后,服务器主机端获取运维脚本运行的结果,然后反馈给运维操作人员。假如某企业运维部门需要对100台服务器进行检查其运行状态,传统运维将手动登录到100台服务器上分别进行脚本或指令的执行,将会来到99次重复性的操作。对于常规性检查,比如每天需要在指定时间运行某个任务或脚本均采用这种方式,将带来工作量巨大、执行效率低、错误及遗漏较多的情况。
本发明即是针对现有技术的不足而研究提出。
技术实现要素:
本发明要解决的技术问题是提供一种用于批量运维远程主机的方法和一种用于批量运维远程主机的管理系统,解决现有技术中运维远程主机效率低、容易漏检的问题。
本发明的一种用于批量运维远程主机的方法,所述的方法包括有以下步骤:
s1、开始运行,服务器主机获取远程主机的管理权限;
s2、操作者将运维脚本上传至服务器主机,服务器主机对运维脚本进行保存;
s3、服务器主机自动地向远程主机发送运维脚本;
s4、远程主机接收远程主机发送的运维脚本,并运行;
s5、服务器主机接收远程主机反馈的执行运维脚本的执行结果;
s6、服务器主机生成每一台远程主机执行运维脚本的巡检报告。
如上所述的用于批量运维远程主机的方法,在步骤s1中,服务器主机采用ssh通讯协议及ssh免密码登录技术登入到远程主机。
如上所述的用于批量运维远程主机的方法,步骤s2具体包括:
s21、操作者将运维脚本上传至服务器主机;
s22、服务器主机将运维脚本编译成同一种格式的运维脚本,并保存至服务器主机。
如上所述的用于批量运维远程主机的方法,步骤s3具体包括:
s31、服务器主机自动地向远程主机发送运维脚本时,采用ansible作为自动化运维引擎将运维脚本统一发送至各个执行远程主机;
s32、服务器主机判断每一台远程主机是否正确发送运维脚本;若是,则进行步骤4;若否,则再一次向相应的远程主机发送运维脚本。
如上所述的用于批量运维远程主机的方法,所述的巡检报告包括:巡检指标、巡检任务、以及巡检日志;所述的巡检指标包含:巡检对应的业务系统类型、资源类型、指标名称、指标描述、是否启用监控、阈值、创建人、最后修改人、最后修改时间、以及操作中的一种或几种;所述的巡检任务包含:巡检对应的业务系统类型、资源类型、任务名称、远程主机的ip、巡检内容、定时策略、创建人、最后修改人、最后修改时间、以及操作中的一种或几种;所述的巡检日志包含:巡检对应的业务系统类型、资源类型、巡检任务名称、远程主机的ip、巡检内容描述、开始时间、结束时间、任务状态、是否告警、以及操作中的一种或几种。
如上所述的用于批量运维远程主机的方法,所述的步骤s22中,服务器主机将不同程序语言编写的运维脚本编译成基于python语言的可执行的运维脚本。
本发明的一种用于批量运维远程主机的管理系统,所述的系统包括:
(1)、运维脚本管理模块,该模块对发布前及发布后的运维脚本进行管理,以及选择相应的运维脚本进行发布,在发布前或发布后在相应的远程主机上自动进行脚本的执行。
(2)、文件管理模块,该模块对相应的应用系统的发布的文件包进行管理,文件包管理时,通过本地对文件包进行上传,本地上传文件包后,该文件包将统一放置在主机服务器的指定位置,当需要进行应用系统部署或升级时,将这个文件包统一分发到各个目标主机上,在各个目标主机上对文件包进行解压、安装、执行;
(3)、配置管理模块,对所有运维脚本的发布进行统一配置;
(4)、发布模块,用于将准备好的配置项、文件包、运维脚本,在发布模块中复用,通过对接运维脚本的发布,在运维脚本上所创建的域、集群上进行统一发布,并在发布后对应用是否发布成功进行自动检测,通过对应用网址的校验,是否可访问到应用网址,完成对发布的检测;
(5)、日志模块,对所有远程主机的发布过程和运行结果进行日志收集、存储及展示。
如上所述的用于批量运维远程主机的管理系统,所述的脚本管理模块采用ansible作为自动化运维引擎,ansible使用沙箱技术将各种类型的脚本生成一个可用python运行的沙箱文件,利用ansible将各个沙箱文件分发到各个远程主机上进行执行,执行完成后自动删除对应的沙箱文件。
如上所述的用于批量运维远程主机的管理系统,所述的配置管理模块对通用的发布配置进行保存,将经常使用的发布配置项保存到该模块中。
与现有技术相比,本发明具有如下优点:
1、本发明通过先将事先编写好的运维脚本上传至服务器主机,通过服务器主机对其管理的远程主机进行批量运维,解决了现有技术中运维远程主机效率低、容易漏检的问题,提高运维效率,降低漏检率。
【附图说明】
下面结合附图对本发明的具体实施方式作进一步详细说明,其中:
图1为本发明批量运维远程主机的流程图;
图2为本发明系统的方框图。
【具体实施方式】
下面结合附图对本发明的实施方式作详细说明。
如图1和图2所示,本实施例的一种用于批量运维远程主机的方法,所述的方法包括有以下步骤:
s1、开始运行,服务器主机获取远程主机的管理权限;
s2、操作者将运维脚本上传至服务器主机,服务器主机对运维脚本进行保存;
s3、服务器主机自动地向远程主机发送运维脚本;
s4、远程主机接收远程主机发送的运维脚本,并运行;
s5、服务器主机接收远程主机反馈的执行运维脚本的执行结果;
s6、服务器主机生成每一台远程主机执行运维脚本的巡检报告。
本发明通过先将事先编写好的运维脚本上传至服务器主机,通过服务器主机对其管理的远程主机进行批量运维,解决了现有技术中运维远程主机效率低、容易漏检的问题,提高运维效率,降低漏检率。
在步骤s1中,服务器主机采用ssh通讯协议及ssh免密码登录技术登入到远程主机。
步骤s2具体包括:
s21、操作者将运维脚本上传至服务器主机;
s22、服务器主机将运维脚本编译成同一种格式的运维脚本,并保存至服务器主机。
步骤s3具体包括:
s31、服务器主机自动地向远程主机发送运维脚本时,采用ansible作为自动化运维引擎将运维脚本统一发送至各个执行远程主机;
s32、服务器主机判断每一台远程主机是否正确发送运维脚本;若是,则进行步骤4;若否,则再一次向相应的远程主机发送运维脚本。
步骤s6中的巡检报告包括:巡检指标、巡检任务、以及巡检日志;其中巡检指标包含:巡检对应的业务系统类型、资源类型、指标名称、指标描述、是否启用监控、阈值、创建人、最后修改人、最后修改时间、以及操作中的一种或几种;所述的巡检任务包含:巡检对应的业务系统类型、资源类型、任务名称、远程主机的ip、巡检内容、定时策略、创建人、最后修改人、最后修改时间、以及操作中的一种或几种;所述的巡检日志包含:巡检对应的业务系统类型、资源类型、巡检任务名称、远程主机的ip、巡检内容描述、开始时间、结束时间、任务状态、是否告警、以及操作中的一种或几种。
在步骤s22中,服务器主机将不同程序语言编写的运维脚本编译成基于python语言的可执行的运维脚本。比如,编程人员采用shell语言或者python语言或者sql语言编写运维脚本,在发布之前先将运维脚本编译成基于python语言的可执行的运维脚本,提高适用性,节约系统资源。
本发明同时保护一种用于批量运维远程主机的管理系统,所述的系统包括:
(1)、运维脚本管理模块,该模块对发布前及发布后的运维脚本进行管理,以及选择相应的运维脚本进行发布,在发布前或发布后在相应的远程主机上自动进行脚本的执行;本实施例中脚本管理模块采用ansible作为自动化运维引擎,ansible使用沙箱技术(一个虚拟系统程序,允许你在沙盘环境中运行python脚本,因此运行所产生的变化可以随后删除),将各种类型的脚本生成一个可用python运行的沙箱文件,利用ansible将各个沙箱文件分发到各个远程主机上进行执行,执行完成后自动删除对应的沙箱文件;
(2)、文件管理模块,该模块对相应的应用系统的发布的文件包进行管理,文件包管理时,通过本地对文件包进行上传,本地上传文件包后,该文件包将统一放置在主机服务器的指定位置,当需要进行应用系统部署或升级时,将这个文件包统一分发到各个目标主机上,在各个目标主机上对文件包进行解压、安装、执行;
(3)、配置管理模块,对所有运维脚本的发布进行统一配置,本实施例中,配置管理模块对通用的发布配置进行保存,将经常使用的发布配置项保存到该模块中;
(4)、发布模块,用于将准备好的配置项、文件包、运维脚本,在发布模块中复用,通过对接运维脚本的发布,在运维脚本上所创建的域、集群上进行统一发布,并在发布后对应用是否发布成功进行自动检测,通过对应用网址的校验,是否可访问到应用网址,完成对发布的检测;
(5)、日志模块,对所有远程主机的发布过程和运行结果进行日志收集、存储及展示。
上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。