一种面向Linux系统的软件代理端自动化部署的方法与流程

文档序号:20916764发布日期:2020-05-29 13:37阅读:265来源:国知局
一种面向Linux系统的软件代理端自动化部署的方法与流程

本申请涉及软件代理端自动化部署领域,具体涉及一种面向linux系统的软件代理端自动化部署的方法。



背景技术:

在一个公司或组织内部,有很多正在运行的和新建的系统,这些系统的代码版本并没有统一管理,当这些新建和待升级的系统需要部署上线时,无法得知其代码是否与最初的测试版本一致。往往在部署上线过程中,程序总会有些小问题或者新需求,厂商的技术支持人员为了减少麻烦而直接在现场对代码进行了更改,这可能会导致新的漏洞,增加系统被攻击的风险。为了能有效控制这些系统的代码版本,降低安全风险,设计和开发了版本一致性管理系统。此系统具有两个子系统:一个是管理中心;一个是代理端。代理端负责采集被监控系统代码或文件的变动情况,并上传变更文件到管理中心;管理中心负责存储各系统版本,展示和对比文件变动,以便决定是否需要重新进行测试。

版本一致性管理系统在实施部署过程中,需要把其代理端部署到每个被监控系统所在的主机上,如果人工进行操作,由于机器数量很多,工作量会很大。



技术实现要素:

本申请提供一种面向linux系统的软件代理端自动化部署的方法,解决了人工把代理端部署到每个被监控系统所在的主机上,工作量大的问题。

本申请提供一种面向linux系统的软件代理端自动化部署的方法,包括:

设置部署配置信息;

启动自动化部署模块,自动化部署模块根据所述部署配置信息启动多线程连接多个服务器;

自动化部署模块对连接成功的服务器上传代理端程序;

服务器根据接收到的运行命令运行代理端程序,完成代理端的自动化部署。

优选的,在设置部署配置信息的步骤之后,还包括:

保存部署配置信息。

优选的,启动自动化部署模块,自动化部署模块根据所述部署配置信息启动多线程连接多个服务器进行部署,包括:

启动自动化部署模块,自动化部署模块调用所述部署配置信息;

自动化部署模块根据获取的所述部署配置信息启动多线程连接多个服务器。

优选的,自动化部署模块对连接成功的服务器上传代理端程序,包括:

自动化部署模块对连接成功的服务器通过ssh服务发送查询命令,通过所述查询命令获取所述服务器的操作系统的类型和版本;

自动化部署模块根据所述服务器的操作系统的类型和版本通过scp上传对应的代理端程序。

优选的,在自动化部署模块根据所述服务器的操作系统的类型和版本上传对应的代理端程序的步骤之后,还包括:

服务器通过本地ssh服务接收并保存代理端程序至本地磁盘。

优选的,服务器根据接收到的运行命令运行代理端程序,完成代理端的自动化部署,包括:

服务器管理中心通过ssh服务发送运行代理端程序的命令;

若命令发送成功,服务器根据接收到的运行命令运行代理端程序,自动化部署模块将部署结果标记为部署成功。

优选的,在服务器根据接收到的运行命令运行代理端程序,自动化部署模块将部署结果标记为部署成功的步骤之后,还包括:

当代理端服务运行后,发送心跳信息给管理中心的心跳检测模块;

心跳检测模块收到代理端的心跳信息后将代理端状态标记为运行状态。

优选的,还包括:

自动化部署模块将连接失败的服务器的部署状态标记为失败。

优选的,还包括:

所述面向linux系统的软件代理端自动化部署的方法,通过python技术开发的多线程技术将linux系统的软件代理端自动化部署到多台主机上。

本申请提供一种面向linux系统的软件代理端自动化部署的方法,通过python技术开发的多线程技术,自动化部署模块根据部署配置信息启动多线程连接服务器,将代理端程序上传至服务器,并通过运行命令运行代理端程序,将linux系统的软件代理端自动化部署到多台主机上,解决了人工把代理端部署到每个被监控系统所在的主机上,工作量大的问题。

附图说明

图1是本申请实施例提供的一种面向linux系统的软件代理端自动化部署的方法的流程示意图;

图2是本申请实施例涉及的一种面向linux系统的软件代理端自动化部署的方法的实现流程图;

图3是本申请实施例涉及的代理端部署页面;

图4是本申请实施例涉及的代理端状态查看与管理页面;

图5是本申请实施例涉及的自动化部署简化流程图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

图1为本申请提供的一种面向linux系统的软件代理端自动化部署的方法的流程示意图,下面结合图1对本申请提供方法进行详细说明。

步骤s101,设置部署配置信息。

如图2所示用户通过web浏览器访问和登录系统,然后添加部署配置信息,用于添加部署配置信息的代理端部署页面如图3所示,用户在部署之前,需要配置部署信息,包括将要部署的服务器ip地址,ssh服务所使用的port,以及连接ssh的用户名和密码,最后还要指定代理端部署的目录。然后把此部署配置信息通过“添加”按钮追加到部署列表中,保存部署配置信息。

图2中的管理中心主要负责自动化部署的执行,被监控系统可以理解为将要部署的服务器,通过接收和运行管理中心发送的代理端程序,更新代理端服务,完成linux系统的软件代理端自动化部署。

步骤s102,启动自动化部署模块,自动化部署模块根据所述部署配置信息启动多线程连接多个服务器。

如图2所示,部署配置信息设置完成后,启动自动化部署模块,自动化部署模块调用所述部署配置信息;自动化部署模块根据获取的所述部署配置信息启动多线程连接多个服务器。自动化部署模块会启动多线程负责多个服务器的部署。在一个线程中首先会尝试连接被监控系统所在的服务器ip,如果连接不上,则更新此服务器部署状态为失败到数据库中,然后进行下一个服务器的部署。

步骤s103,自动化部署模块对连接成功的服务器上传代理端程序。

自动化部署模块对连接成功的服务器通过ssh服务发送查询命令,查询被监控系统所在操作系统的类型和版本(例如centos6,centos7,ubuntu16.04等),监控系统为将要更新的报备器,通过所述查询命令获取所述服务器的操作系统的类型和版本。

自动化部署模块根据所述服务器的操作系统的类型和版本通过scp上传对应的代理端程序。根据操作系统类型的不同,选择对应的代理端程序(代理端在不同操作系统上有不同的版本)进行文件上传。自动化部署模块选定正确的代理端版本后,通过scp上传代理端程序到被监控系统所在服务器上。

自动化部署模块选定正确的代理端版本后,通过scp上传代理端程序到被监控系统所在服务器上。服务器通过本地ssh服务接收并保存代理端程序至本地磁盘。

步骤s104,服务器根据接收到的运行命令运行代理端程序,完成代理端的自动化部署。

服务器管理中心通过ssh服务发送运行代理端程序的命令,给被监控系统所在操作系统。此命令也与被监控系统所在操作系统类型相关,若命令发送成功,服务器根据接收到的运行命令运行代理端程序,自动化部署模块将部署结果标记为部署成功。更新部署配置表中部署结果为“部署成功”。当代理端服务运行后,发送心跳信息给管理中心的心跳检测模块;心跳检测模块收到代理端的心跳信息后将代理端状态标记为运行状态,更新代理端表中代理端状态为“运行”。自动化部署模块将连接失败的服务器的部署状态标记为失败。

所述面向linux系统的软件代理端自动化部署的方法,通过python技术开发的多线程技术将linux系统的软件代理端自动化部署到多台主机上。

在上述过程中,如果一个服务器上的代理端部署失败并不会影响其他服务器上代理端的部署。部署失败的原因会写入到部署配置表中,以便管理员排查原因,并在修复问题后通过“部署”按钮单独执行一次部署。在上述方案中会采用多线程技术并发进行部署,以便缩短部署时间。

下面再结合图3和图4对linux系统的软件代理端自动化部署的方法的具体操作步骤进行说明。图2是代理端自动批量部署页面。用户在部署之前,需要配置部署信息,包括将要部署的服务器ip地址,ssh服务所使用的port,以及连接ssh的用户名和密码,最后还要指定代理端部署的目录。然后把此部署配置信息通过“添加”按钮追加到部署列表中。当所有要部署的服务器信息配置完成,用户点击“批量部署”按钮进行一次性对多台服务器进行自动化的部署工作。另外如果用户输入的配置信息错误,还可以删除此配置信息,然后重新添加。并且系统还支持单个服务器的代理端部署,只要点击某个配置记录右侧的“部署”按钮就可以进行单独部署,尤其对于部署失败的服务器,可以进行多次的单独部署,直到解决部署问题(有可能是服务器网络不通,或者用户名或者密码输入错误)。

当代理端部署成功后,代理端会向管理中心发送心跳信息,管理中心更新代理端的状态。如图4表格中的状态列,当状态为“运行”后,说明代理端部署成功,并且正常运行。

本申请提供的方法同样适合那些需要部署代理端到多台服务器上的系统和软件。

本申请提供的自动化部署简化流程如图5所示,简化后和流程包括以下6步:

1)用户输入服务器部署配置信息,保存到部署配置表中。

2)基于多线程技术实现多台服务器的并发自动部署。

3)通过ssh协议下发查询操作系统类型命令到部署服务器上,根据返回的服务器上操作系统类型,选择对应的代理端程序版本进行部署。

4)通过scp协议上传代理端程序到部署服务器上。

5)通过ssh协议下发运行代理端的命令到部署服务器上。

6)通过代理端给管理中心发起的心跳信息,决定代理端是否运行正常。

本申请是一种面向linux系统的分布式自动化部署方法,基于python多线程技术,采用scp、ssh协议上传文件和下发命令等方式完成多主机的部署,并且,可以收集部署信息到mysql数据库中,最终通过web展示给用户部署结果。

本申请提供一种面向linux系统的软件代理端自动化部署的方法,通过python技术开发的多线程技术,自动化部署模块根据部署配置信息启动多线程连接服务器,将代理端程序上传至服务器,并通过运行命令运行代理端程序,将linux系统的软件代理端自动化部署到多台主机上,解决了人工把代理端部署到每个被监控系统所在的主机上,工作量大的问题。让代理端的部署工作大大简化,节省了人力成本和降低了人为操作引发问题的几率。

以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员依然可以对本发明的具体实施方式进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。

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