[go: up one dir, main page]

CN111209012A - 一种面向Linux系统的软件代理端自动化部署的方法 - Google Patents

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

Info

Publication number
CN111209012A
CN111209012A CN201911415473.7A CN201911415473A CN111209012A CN 111209012 A CN111209012 A CN 111209012A CN 201911415473 A CN201911415473 A CN 201911415473A CN 111209012 A CN111209012 A CN 111209012A
Authority
CN
China
Prior art keywords
deployment
agent
server
automated
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911415473.7A
Other languages
English (en)
Inventor
李凌
刘莹
韩龙
单松玲
宋小芹
方帅
严敏辉
王杰
刘育辰
李鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Corp of China SGCC
China Electric Power Research Institute Co Ltd CEPRI
Original Assignee
State Grid Corp of China SGCC
China Electric Power Research Institute Co Ltd CEPRI
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by State Grid Corp of China SGCC, China Electric Power Research Institute Co Ltd CEPRI filed Critical State Grid Corp of China SGCC
Priority to CN201911415473.7A priority Critical patent/CN111209012A/zh
Publication of CN111209012A publication Critical patent/CN111209012A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一面向Linux系统的软件代理端自动化部署的方法,包括:设置部署配置信息;启动自动化部署模块,自动化部署模块根据所述部署配置信息启动多线程连接多个服务器;自动化部署模块对连接成功的服务器上传代理端程序;服务器根据接收到的运行命令运行代理端程序,完成代理端的自动化部署,解决了人工把代理端部署到每个被监控系统所在的主机上,工作量大的问题。

Description

一种面向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系统的软件代理端自动化部署到多台主机上,解决了人工把代理端部署到每个被监控系统所在的主机上,工作量大的问题。让代理端的部署工作大大简化,节省了人力成本和降低了人为操作引发问题的几率。
以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员依然可以对本发明的具体实施方式进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。

Claims (9)

1.一种面向Linux系统的软件代理端自动化部署的方法,其特征在于,包括:
设置部署配置信息;
启动自动化部署模块,自动化部署模块根据所述部署配置信息启动多线程连接多个服务器;
自动化部署模块对连接成功的服务器上传代理端程序;
服务器根据接收到的运行命令运行代理端程序,完成代理端的自动化部署。
2.根据权利要求1所述的方法,其特征在于,在设置部署配置信息的步骤之后,还包括:
保存部署配置信息。
3.根据权利要求1所述的方法,其特征在于,启动自动化部署模块,自动化部署模块根据所述部署配置信息启动多线程连接多个服务器进行部署,包括:
启动自动化部署模块,自动化部署模块调用所述部署配置信息;
自动化部署模块根据获取的所述部署配置信息启动多线程连接多个服务器。
4.根据权利要求1所述的方法,其特征在于,自动化部署模块对连接成功的服务器上传代理端程序,包括:
自动化部署模块对连接成功的服务器通过SSH服务发送查询命令,通过所述查询命令获取所述服务器的操作系统的类型和版本;
自动化部署模块根据所述服务器的操作系统的类型和版本通过SCP上传对应的代理端程序。
5.根据权利要求4所述的方法,其特征在于,在自动化部署模块根据所述服务器的操作系统的类型和版本上传对应的代理端程序的步骤之后,还包括:
服务器通过本地SSH服务接收并保存代理端程序至本地磁盘。
6.根据权利要求1所述的方法,其特征在于,服务器根据接收到的运行命令运行代理端程序,完成代理端的自动化部署,包括:
服务器管理中心通过SSH服务发送运行代理端程序的命令;
若命令发送成功,服务器根据接收到的运行命令运行代理端程序,自动化部署模块将部署结果标记为部署成功。
7.根据权利要求1或6所述的方法,其特征在于,在服务器根据接收到的运行命令运行代理端程序,自动化部署模块将部署结果标记为部署成功的步骤之后,还包括:
当代理端服务运行后,发送心跳信息给管理中心的心跳检测模块;
心跳检测模块收到代理端的心跳信息后将代理端状态标记为运行状态。
8.根据权利要求1或4所述的方法,其特征在于,还包括:
自动化部署模块将连接失败的服务器的部署状态标记为失败。
9.根据权利要求1所述的方法,其特征在于,还包括:
所述面向Linux系统的软件代理端自动化部署的方法,通过Python技术开发的多线程技术将Linux系统的软件代理端自动化部署到多台主机上。
CN201911415473.7A 2019-12-31 2019-12-31 一种面向Linux系统的软件代理端自动化部署的方法 Pending CN111209012A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911415473.7A CN111209012A (zh) 2019-12-31 2019-12-31 一种面向Linux系统的软件代理端自动化部署的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911415473.7A CN111209012A (zh) 2019-12-31 2019-12-31 一种面向Linux系统的软件代理端自动化部署的方法

Publications (1)

Publication Number Publication Date
CN111209012A true CN111209012A (zh) 2020-05-29

Family

ID=70789861

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911415473.7A Pending CN111209012A (zh) 2019-12-31 2019-12-31 一种面向Linux系统的软件代理端自动化部署的方法

Country Status (1)

Country Link
CN (1) CN111209012A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342357A (zh) * 2021-06-28 2021-09-03 北京天空卫士网络安全技术有限公司 一种软件系统的部署方法和装置
CN114666348A (zh) * 2022-05-25 2022-06-24 广东睿江云计算股份有限公司 一种基于python语言快速构建分布式系统的方法
CN115766428A (zh) * 2022-10-31 2023-03-07 海尔优家智能科技(北京)有限公司 自动化监控方法、存储介质及电子装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727343A (zh) * 2009-11-30 2010-06-09 英业达股份有限公司 分布式服务器的软件安装部署方法
CN104536899A (zh) * 2015-01-20 2015-04-22 成都益联科创科技有限公司 一种基于智能集群的软件部署及其维护方法
CN109656570A (zh) * 2018-12-18 2019-04-19 江苏满运软件科技有限公司 集群系统及其运行方法、电子设备和存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727343A (zh) * 2009-11-30 2010-06-09 英业达股份有限公司 分布式服务器的软件安装部署方法
CN104536899A (zh) * 2015-01-20 2015-04-22 成都益联科创科技有限公司 一种基于智能集群的软件部署及其维护方法
CN109656570A (zh) * 2018-12-18 2019-04-19 江苏满运软件科技有限公司 集群系统及其运行方法、电子设备和存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342357A (zh) * 2021-06-28 2021-09-03 北京天空卫士网络安全技术有限公司 一种软件系统的部署方法和装置
CN113342357B (zh) * 2021-06-28 2024-08-23 北京天空卫士网络安全技术有限公司 一种软件系统的部署方法和装置
CN114666348A (zh) * 2022-05-25 2022-06-24 广东睿江云计算股份有限公司 一种基于python语言快速构建分布式系统的方法
CN114666348B (zh) * 2022-05-25 2022-11-11 广东睿江云计算股份有限公司 一种基于python语言快速构建分布式系统的方法
CN115766428A (zh) * 2022-10-31 2023-03-07 海尔优家智能科技(北京)有限公司 自动化监控方法、存储介质及电子装置

Similar Documents

Publication Publication Date Title
US10545469B2 (en) Systems and methods for self provisioning building equipment
US10592330B2 (en) Systems and methods for automatic replacement and repair of communications network devices
US10019250B2 (en) Forcibly completing upgrade of distributed software in presence of failures
US7398471B1 (en) System and method for the administration of resource groups
US20110119358A1 (en) Systems and methods for operating networked computer systems
US20100169470A1 (en) System and method for operational management of computer system
CN111209012A (zh) 一种面向Linux系统的软件代理端自动化部署的方法
JP2003099410A (ja) 複数装置管理の方法およびシステム
US12236231B2 (en) Automation controller for upgrading an IT infrastructure
CN107395385A (zh) 软件升级方法及装置
CN112291289A (zh) 配置文件管理方法、设备及计算机可读存储介质
CN112351098A (zh) 拷机服务集群系统、控制方法、装置及介质
TWI801730B (zh) 具系統設定資料同步功能的伺服器
CN113485720B (zh) 一种微服务系统的离线升级方法
CN110620695A (zh) 一种数据处理方法及相关设备
US8402125B2 (en) Method of managing operations for administration, maintenance and operational upkeep, management entity and corresponding computer program product
US9207928B2 (en) Computer-readable medium, apparatus, and methods of automatic capability installation
JP2006113754A (ja) ソフトウェア更新装置及び方法
CN115809096B (zh) 操作系统批量自适应升级方法
CN116844087A (zh) 操作系统的监控方法、装置以及bmc
KR102033489B1 (ko) 서버 클러스터 관리 방법 및 서버
CN116112330B (zh) 一种系统维护方法、装置、设备及存储介质
CN113688143B (zh) 具系统设定数据同步功能的服务器
US7383430B1 (en) System and method for validating resource groups
CN115372803B (zh) 主板测试系统、方法、装置和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination