[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN107659458B - 基于git版本控制的Agent部署升级方法及系统 - Google Patents

基于git版本控制的Agent部署升级方法及系统 Download PDF

Info

Publication number
CN107659458B
CN107659458B CN201711063697.7A CN201711063697A CN107659458B CN 107659458 B CN107659458 B CN 107659458B CN 201711063697 A CN201711063697 A CN 201711063697A CN 107659458 B CN107659458 B CN 107659458B
Authority
CN
China
Prior art keywords
agent
version
deployment
deployed
target server
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.)
Active
Application number
CN201711063697.7A
Other languages
English (en)
Other versions
CN107659458A (zh
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.)
Guangdong Eshore Technology Co Ltd
Original Assignee
Guangdong Eshore Technology Co Ltd
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 Guangdong Eshore Technology Co Ltd filed Critical Guangdong Eshore Technology Co Ltd
Priority to CN201711063697.7A priority Critical patent/CN107659458B/zh
Publication of CN107659458A publication Critical patent/CN107659458A/zh
Application granted granted Critical
Publication of CN107659458B publication Critical patent/CN107659458B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及基于git版本控制的Agent部署升级方法及系统,该方法包括将Agent配置管理服务端组件和Git仓库部署至目标服务器并各自启动;对目标服务器部署Agent Daemon服务组件;将Agent部署包上传到Git仓库并配置Agent部署策略;针对Agent Daemon服务组件同步Agent部署策略,并执行Agent部署策略对应的命令操作。本发明简化了部署配置难度,实现版本的快速回滚,且将部署包与配置文件分离,利用Git版本机制,提供了一种简易的配置升级管理机制,避免引入复杂的配置管理系统。

Description

基于git版本控制的Agent部署升级方法及系统
技术领域
本发明涉及Agent部署升级方法,更具体地说是指基于git版本控制的Agent部署升级方法及系统。
背景技术
传统的计算系统是封闭的,要满足一致性的要求,然而社会机制是开放的,不能满足一致性条件,这种机制下的部分个体在矛盾的情况下,需要通过某种协商机制达成一个可接受的解,这个计算社会中的这种个体称为Agent,这些个体的有机组合则构成计算社会--多Agent系统,即Agent是指驻留在某一环境下,能持续自主地发挥作用,具备驻留性、反应性、社会性、主动性等特征的计算实体。
随着互联网分布式技术的发展,越来越多的系统采用Agent的架构设计,因此需要将多个Agent(如监控Agent、部署Agent、naming Agent、日志采集Agent等)部署到每台服务器上,如果公司机器量比较少,用pssh、ansible、fabric之类的工具手工安装问题也不大,但是公司机器量多了之后,手工安装、升级、回滚Agent将是很麻烦的事情。目前对于部署而言,采用两种方式,一是使用ansible等编写脚本也可以实现批量的部署,通过编写Agent安装脚本,指定目标服务器IP地址,推送安装脚本到目标服务器执行安装;同时该方案也可以单独将配置文件推送到目标服务器,但每次部署都需要配置服务器地址、账号等信息,配置较为麻烦,尤其是当前流行的虚拟机、容器创建服务器方式很难及时知道服务器的IP地址等信息,不能对Agent的部署状态进行实时监控;而且缺少版本的管理,每次更新都需要修改安装脚本,回滚效率低;二是在虚机创建的时候将Agent捆绑到镜像来实现部署,但这种方式并未考虑Agent版本升级的情况,并且Agent部署到不同的服务器时很可能配置不同,在虚机启动后还需要手动登录进去修改每台的Agent配置。
因此,有必要设计一种基于git版本控制的Agent部署升级方法,实现简化了批量部署配置难度,实现版本的快速回滚,避免引入复杂的配置管理系统,部署简单。
发明内容
本发明的目的在于克服现有技术的缺陷,提供基于git版本控制的Agent部署升级方法及系统。
为实现上述目的,本发明采用以下技术方案:基于git版本控制的Agent部署升级方法,所述方法包括:
将Agent配置管理服务端组件和git仓库部署至目标服务器并各自启动;
对目标服务器部署Agent Daemon服务组件;
将Agent部署包上传到git仓库并配置Agent部署策略;
针对Agent Daemon服务组件同步Agent部署策略,并执行Agent部署策略对应的命令操作;
针对Agent Daemon服务组件同步Agent部署策略,并执行Agent部署策略对应的命令操作的步骤,包括以下具体步骤:
Agent Daemon服务组件同步Agent部署策略;
获取目标服务器需要部署的Agent版本信息;
判断Agent版本信息与目标服务器当前部署的Agent版本是否一致;
若Agent版本信息与目标服务器当前部署的Agent版本一致,则更新Agent部署包对应的配置文件,并上传Agent部署状态;
若Agent版本信息与目标服务器当前部署的Agent版本不一致,则通过git版本管理机制判断目标服务器内是否已包含需要部署的Agent版本信息;
若目标服务器内已包含需要部署的Agent版本信息,则将目标服务器当前部署的Agent版本切换至需要部署的Agent版本,并进入更新Agent部署包以及对应的配置文件,并上传Agent部署状态的步骤;
若目标服务器内未包含需要部署的Agent版本信息,则从git仓库中下载需要部署的Agent版本,并进入将目标服务器当前部署的Agent版本切换至需要部署的Agent版本的步骤。
其进一步技术方案为:将Agent部署包上传到git仓库并配置Agent部署策略的步骤,包括以下具体步骤:
获取需要部署的Agent部署包和对应的配置文件;
将Agent部署包和对应的配置文件提交至git仓库;
上报目标服务器地址,并对目标服务器进行分组;
设置每组目标服务器需要部署的Agent版本信息;
设置Agent的执行操作命令。
其进一步技术方案为:获取Agent部署包对应的配置文件的版本信息;
判断配置文件的版本信息是否与目标服务器当前的配置文件版本信息一致;
若配置文件的版本信息与目标服务器当前的配置文件版本信息一致,则上传Agent部署状态;
若配置文件的版本信息与目标服务器当前的配置文件版本信息不一致,则通过git版本管理机制判断目标服务器内是否已包含需要部署的Agent部署包对应配置文件的版本;
若目标服务器内已包含需要部署的Agent部署包对应配置文件的版本,则将目标服务器当前配置文件的版本切换至需要部署的Agent部署包对应配置文件的版本信息,并进入上传Agent部署状态的步骤;
若目标服务器内未包含需要部署的Agent部署包对应配置文件的版本,则从git仓库中下载需要部署的Agent部署包对应配置文件的版本信息,并进入上传Agent部署状态的步骤。
本发明还提供了基于git版本控制的Agent部署升级系统,包括组件处理单元、Agent Daemon处理单元、部署包处理单元以及部署单元;
所述组件处理单元,用于将Agent配置管理服务端组件和git仓库部署至目标服务器并各自启动;
所述Agent Daemon处理单元,用于对目标服务器部署Agent Daemon服务组件;
所述部署包处理单元,用于将Agent部署包上传到git仓库并配置Agent部署策略;
所述部署单元,用于针对Agent Daemon服务组件同步Agent部署策略,并执行Agent部署策略对应的命令操作;
所述部署单元包括同步模块、Agent版本信息获取模块、Agent版本判断模块、更新模块、Agent版本存在性判断模块、Agent版本切换模块以及Agent版本下载模块;
所述同步模块,用于Agent Daemon服务组件同步Agent部署策略;
所述Agent版本信息获取模块,用于获取目标服务器需要部署的Agent版本信息;
所述Agent版本判断模块,用于判断Agent版本信息与目标服务器当前部署的Agent版本是否一致;
所述更新模块,用于若Agent版本信息与目标服务器当前部署的Agent版本一致,则更新Agent部署包对应的配置文件,并上传Agent部署状态;
所述Agent版本存在性判断模块,用于若Agent版本信息与目标服务器当前部署的Agent版本不一致,则通过git版本管理机制判断目标服务器内是否已包含需要部署的Agent版本信息;
所述Agent版本切换模块,用于若目标服务器内已包含需要部署的Agent版本信息,则将目标服务器当前部署的Agent版本切换至需要部署的Agent版本;
所述Agent版本下载模块,用于若目标服务器内未包含需要部署的Agent版本信息,则从git仓库中下载需要部署的Agent版本。
其进一步技术方案为:所述部署包处理单元包括资料获取模块、提交模块、地址上报模块、版本信息设置模块以及命令设置模块;
所述资料获取模块,用于获取需要部署的Agent部署包和对应的配置文件;
所述提交模块,用于将Agent部署包和对应的配置文件提交至git仓库;
所述地址上报模块,用于上报目标服务器地址,并对目标服务器进行分组;
所述版本信息设置模块,用于设置每组目标服务器需要部署的Agent版本信息;
所述命令设置模块,用于设置Agent的执行操作命令。
其进一步技术方案为:所述更新模块包括文件版本获取子模块、文件版本判断子模块、状态上传子模块、文件版本存在性判断子模块、文件版本切换子模块以及文件版本下载子模块;
所述文件版本获取子模块,用于获取Agent部署包对应的配置文件的版本信息;
所述文件版本判断子模块,用于判断配置文件的版本信息是否与目标服务器当前的配置文件版本信息一致;
所述状态上传子模块,用于若配置文件的版本信息与目标服务器当前的配置文件版本信息一致,则上传Agent部署状态;
所述文件版本存在性判断子模块,用于若配置文件的版本信息与目标服务器当前的配置文件版本信息不一致,则通过git版本管理机制判断目标服务器内是否已包含需要部署的Agent部署包对应配置文件的版本;
所述文件版本切换子模块,用于若目标服务器内已包含需要部署的Agent部署包对应配置文件的版本,则将目标服务器当前配置文件的版本切换至需要部署的Agent部署包对应配置文件的版本信息;
所述文件版本下载子模块,用于若目标服务器内未包含需要部署的Agent部署包对应配置文件的版本,则从git仓库中下载需要部署的Agent部署包对应配置文件的版本信息。
本发明与现有技术相比的有益效果是:本发明的基于git版本控制的Agent部署升级方法,通过采用Agent配置管理服务端组件以及Agent Daemon服务组件,自动发现目标服务器IP和名称,简化了部署配置难度,Agent Daemon服务组件便于监控目标服务器的各类Agent部署状态,利用git仓库自身的版本管理机制,实现版本的快速回滚,且将部署包与配置文件分离,利用git版本机制,提供了一种简易的配置升级管理机制,避免引入复杂的配置管理系统。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
图1为本发明具体实施例提供的基于git版本控制的Agent部署升级方法的流程图一;
图2为本发明具体实施例提供的基于git版本控制的Agent部署升级方法的流程图二;
图3为本发明具体实施例提供的将Agent部署包上传到git仓库并配置Agent部署策略的流程图;
图4为本发明具体实施例提供的针对Agent Daemon服务组件同步Agent部署策略并执行Agent部署策略对应的命令操作的流程图;
图5为本发明具体实施例提供的更新Agent部署包对应的配置文件并上传Agent部署状态的流程图;
图6为本发明具体实施例提供的基于git版本控制的Agent部署升级系统的结构框图;
图7为本发明具体实施例提供的部署包处理单元的结构框图;
图8为本发明具体实施例提供的部署单元的结构框图;
图9为本发明具体实施例提供的更新模块的结构框图。
具体实施方式
为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
如图1~9所示的具体实施例,本实施例提供的基于git版本控制的Agent部署升级方法,可以运用在zabbix-agent的批量部署和升级过程中,实现简化了批量部署配置难度,实现版本的快速回滚,避免引入复杂的配置管理系统,部署简单。
如图1所示,本实施例提供了基于git版本控制的Agent部署升级方法,该方法包括:
S1、将Agent配置管理服务端组件和git仓库部署至目标服务器并各自启动;
S2、对目标服务器部署Agent Daemon服务组件;
S3、将Agent部署包上传到git仓库并配置Agent部署策略;
S4、针对Agent Daemon服务组件同步Agent部署策略,并执行Agent部署策略对应的命令操作。
对于上述的S1步骤,Agent配置管理服务端组件负责Agent部署的策略设置,监控各服务器的部署状态,管理Agent的配置信息;git仓库主要存储Agent部署包和配置文件,提供版本管理支持;将Agent配置管理服务端组件和git仓库部署至目标服务器并各自启动,可以使得目标服务器具备Agent配置管理服务端组件以及git仓库的功能,在部署的时候,不包含任何的配置数据,git仓库也是空的。
另外,上述的S2步骤,具体是在需要部署Agent的目标服务器上部署Agent Daemon服务组件。Agent Daemon服务组件部署在各个目标服务器上,负责同步部署策略并根据策略执行本机各类Agent的部署、升级等操作,并向Agent配置管理服务端组件上报所在服务器Agent的部署状态;Agent Daemon服务组件一般很少变化,可以捆绑到虚拟机镜像里,这样在新创建虚拟机的时候自动就部署好了Daemon服务,可以配置Daemon开机自动启动,启动后Daemon程序将自动上报本服务器的IP地址和服务器名称到Agent配置管理服务端组件。采用Agent模式,能够自动发现服务器IP和名称,简化了部署配置难度,尤其是在服务器数量较多时更凸显优势;同时Agent Daemon服务组件能更加方便监控本机的各类Agent部署状态,部署过程简单。
更进一步地,在某些实施例中,上述的S4步骤,将Agent部署包上传到git仓库并配置Agent部署策略的步骤,包括以下具体步骤:
S41、获取需要部署的Agent部署包和对应的配置文件;
S42、将Agent部署包和对应的配置文件提交至git仓库;
S43、上报目标服务器地址,并对目标服务器进行分组;
S44、设置每组目标服务器需要部署的Agent版本信息;
S45、设置Agent的执行操作命令。
对于上述的S41步骤至S42步骤,先将需要部署的Agent部署包和对应的配置文件通过git工具提交到git仓库,以便于采用git机制辅助实现版本管理,包括版本的存储、版本的更新、版本的比对、本的切换等,如果不用git,直接使用文件存储服务代替git仓库也能实现Agent的部署升级,但每次变更版本都需要自行实现文件的替换操作。
对于上述的S43步骤至S45步骤,根据自动上报的目标服务器地址,将目标服务器进行分组,设置每组目标服务器需要部署的Agent版本信息(版本信息包含名称、Agent版本号、部署包git地址、对应的配置文件地址、配置文件版本、运行的账号、部署的目标路径等属性),并设置Agent的执行操作命令(start/stop/none)。
更进一步地,在某些实施例中,上述的S5步骤,针对Agent Daemon服务组件同步Agent部署策略,并执行Agent部署策略对应的命令操作的步骤,包括以下具体步骤:
S51、Agent Daemon服务组件同步Agent部署策略;
S52、获取目标服务器需要部署的Agent版本信息;
S53、判断Agent版本信息与目标服务器当前部署的Agent版本是否一致;
若是,则S54、更新Agent部署包对应的配置文件,并上传Agent部署状态;
若否,则S55、通过git版本管理机制判断目标服务器内是否已包含需要部署的Agent版本信息;
若已包含,则S56、将目标服务器当前部署的Agent版本切换至需要部署的Agent版本,并进入S54步骤;
若未包含,则S57、从git仓库中下载需要部署的Agent版本,并进入S56的步骤。
具体地,上述的S51步骤至S53步骤,将需要部署的Agent版本信息与目标服务器当前部署的Agent版本是否一致进行对比,目的是确认目标服务器当前部署是否需要部署。
对于上述的S55步骤至S57步骤,利用git自身的版本管理机制,可以快速的实现版本的回滚;通过将部署包与配置文件分离,利用git版本机制,提供了一种简易的配置升级管理机制,避免引入复杂的配置管理系统。
更进一步地,在某些实施例中,上述的S54步骤,更新Agent部署包对应的配置文件,并上传Agent部署状态的步骤,包括以下具体步骤:
S541、获取Agent部署包对应的配置文件的版本信息;
S542、判断配置文件的版本信息是否与目标服务器当前的配置文件版本信息一致;
若是,则S543、上传Agent部署状态;
若否,则S544、通过git版本管理机制判断目标服务器内是否已包含需要部署的Agent部署包对应配置文件的版本;
若已包含,则S545、将目标服务器当前配置文件的版本切换至需要部署的Agent部署包对应配置文件的版本信息,并进入S543步骤;
若未包含,则S546、从git仓库中下载需要部署的Agent部署包对应配置文件的版本信息,并进入S543步骤。
通过将部署包与配置文件分离,分别对部署包以及配置文件进行更新,利用git版本机制,提供了一种简易的配置升级管理机制,避免引入复杂的配置管理系统。完成配置更新后,将执行目标Agent对应的操作命令(约定Agent部署包至少需要提供start/stop/none几个命令的支持),最后将部署的状态信息上报到Agent配置管理服务端组件,方便发布人员监控管理。
考虑到部署的复杂度问题,Agent配置管理服务端组件、git仓库以及AgentDaemon服务组件都采用go语言开发实现,这样在部署的时候无需依赖其它的环境,直接启动就能使用,避免了对第三方软件的环境依赖,部署简单。
上述的基于git版本控制的Agent部署升级方法,通过采用Agent配置管理服务端组件以及Agent Daemon服务组件,自动发现目标服务器IP和名称,简化了部署配置难度,Agent Daemon服务组件便于监控目标服务器的各类Agent部署状态,利用git仓库自身的版本管理机制,实现版本的快速回滚,且将部署包与配置文件分离,利用git版本机制,提供了一种简易的配置升级管理机制,避免引入复杂的配置管理系统。
如图6所示,本实施例还提供了基于git版本控制的Agent部署升级系统,其包括组件处理单元1、Agent Daemon处理单元2、部署包处理单元3以及部署单元4。
组件处理单元1,用于将Agent配置管理服务端组件和git仓库部署至目标服务器并各自启动。
Agent Daemon处理单元2,用于对目标服务器部署Agent Daemon服务组件。
部署包处理单元3,用于将Agent部署包上传到git仓库并配置Agent部署策略。
部署单元4,用于针对Agent Daemon服务组件同步Agent部署策略,并执行Agent部署策略对应的命令操作。
对于上述的组件处理单元1,Agent配置管理服务端组件负责Agent部署的策略设置,监控各服务器的部署状态,管理Agent的配置信息;git仓库主要存储Agent部署包和配置文件,提供版本管理支持;将Agent配置管理服务端组件和git仓库部署至目标服务器并各自启动,可以使得目标服务器具备Agent配置管理服务端组件以及git仓库的功能,在部署的时候,不包含任何的配置数据,git仓库也是空的。
另外,对于上述的Agent Daemon处理单元2,具体是在需要部署Agent的目标服务器上部署Agent Daemon服务组件。Agent Daemon服务组件部署在各个目标服务器上,负责同步部署策略并根据策略执行本机各类Agent的部署、升级等操作,并向Agent配置管理服务端组件上报所在服务器Agent的部署状态;Agent Daemon服务组件一般很少变化,可以捆绑到虚拟机镜像里,这样在新创建虚拟机的时候自动就部署好了Daemon服务,可以配置Daemon开机自动启动,启动后Daemon程序将自动上报本服务器的IP地址和服务器名称到Agent配置管理服务端组件,采用Agent模式,能够自动发现服务器IP和名称,简化了部署配置难度,尤其是在服务器数量较多时更凸显优势;同时Agent Daemon服务组件能更加方便监控本机的各类Agent部署状态,部署过程简单。
更进一步地,在某些实施例中,部署包处理单元3包括资料获取模块31、提交模块32、地址上报模块33、版本信息设置模块34以及命令设置模块35。
资料获取模块31,用于获取需要部署的Agent部署包和对应的配置文件。
提交模块32,用于将Agent部署包和对应的配置文件提交至git仓库。
地址上报模块33,用于上报目标服务器地址,并对目标服务器进行分组。
版本信息设置模块34,用于设置每组目标服务器需要部署的Agent版本信息。
命令设置模块35,用于设置Agent的执行操作命令。
先将需要部署的Agent部署包和对应的配置文件通过git工具提交到git仓库,以便于采用git机制辅助实现版本管理,包括版本的存储、版本的更新、版本的比对、本的切换等,如果不用git,直接使用文件存储服务代替git仓库也能实现Agent的部署升级,但每次变更版本都需要自行实现文件的替换操作。
根据自动上报的目标服务器地址,将目标服务器进行分组,设置每组目标服务器需要部署的Agent版本信息(版本信息包含名称、Agent版本号、部署包git地址、对应的配置文件地址、配置文件版本、运行的账号、部署的目标路径等属性),并设置Agent的执行操作命令(start/stop/none)。
更进一步地,在某些实施例中,部署单元4包括同步模块41、Agent版本信息获取模块42、Agent版本判断模块43、更新模块44、Agent版本存在性判断模块45、Agent版本切换模块46以及Agent版本下载模块47。
同步模块41,用于Agent Daemon服务组件同步Agent部署策略。
Agent版本信息获取模块42,用于获取目标服务器需要部署的Agent版本信息。
Agent版本判断模块43,用于判断Agent版本信息与目标服务器当前部署的Agent版本是否一致。
更新模块44,用于若是,则更新Agent部署包对应的配置文件,并上传Agent部署状态。
Agent版本存在性判断模块45,用于若否,则通过git版本管理机制判断目标服务器内是否已包含需要部署的Agent版本信息。
Agent版本切换模块46,用于若已包含,则将目标服务器当前部署的Agent版本切换至需要部署的Agent版本。
Agent版本下载模块47,用于若未包含,则从git仓库中下载需要部署的Agent版本。
利用git自身的版本管理机制,可以快速的实现版本的回滚;通过将部署包与配置文件分离,利用git版本机制,提供了一种简易的配置升级管理机制,避免引入复杂的配置管理系统。
更进一步地,在某些实施例中,更新模块44包括文件版本获取子模块441、文件版本判断子模块442、状态上传子模块443、文件版本存在性判断子模块444、文件版本切换子模块445以及文件版本下载子模块446。
文件版本获取子模块441,用于获取Agent部署包对应的配置文件的版本信息。
文件版本判断子模块442,用于判断配置文件的版本信息是否与目标服务器当前的配置文件版本信息一致。
状态上传子模块443,用于若是,则上传Agent部署状态。
文件版本存在性判断子模块444,用于若否,则通过git版本管理机制判断目标服务器内是否已包含需要部署的Agent部署包对应配置文件的版本。
文件版本切换子模块445,用于若已包含,则将目标服务器当前配置文件的版本切换至需要部署的Agent部署包对应配置文件的版本信息。
文件版本下载子模块446,用于若未包含,则从git仓库中下载需要部署的Agent部署包对应配置文件的版本信息。
通过将部署包与配置文件分离,分别对部署包以及配置文件进行更新,利用git版本机制,提供了一种简易的配置升级管理机制,避免引入复杂的配置管理系统。完成配置更新后,将执行目标Agent对应的操作命令(约定Agent部署包至少需要提供start/stop/none几个命令的支持),最后将部署的状态信息上报到Agent配置管理服务端组件,方便发布人员监控管理。
考虑到部署的复杂度问题,Agent配置管理服务端组件、git仓库以及AgentDaemon服务组件都采用go语言开发实现,这样在部署的时候无需依赖其它的环境,直接启动就能使用,避免了对第三方软件的环境依赖,部署简单。
上述的基于git版本控制的Agent部署升级系统,通过采用Agent配置管理服务端组件以及Agent Daemon服务组件,自动发现目标服务器IP和名称,简化了部署配置难度,Agent Daemon服务组件便于监控目标服务器的各类Agent部署状态,利用git仓库自身的版本管理机制,实现版本的快速回滚,且将部署包与配置文件分离,利用git版本机制,提供了一种简易的配置升级管理机制,避免引入复杂的配置管理系统。
上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。

Claims (6)

1.基于git版本控制的Agent部署升级方法,其特征在于,所述方法包括:
将Agent配置管理服务端组件和git仓库部署至目标服务器并各自启动;
对目标服务器部署Agent Daemon服务组件;
将Agent部署包上传到git仓库并配置Agent部署策略;
针对Agent Daemon服务组件同步Agent部署策略,并执行Agent部署策略对应的命令操作;
其中,针对Agent Daemon服务组件同步Agent部署策略,并执行Agent部署策略对应的命令操作的步骤,包括以下具体步骤:
Agent Daemon服务组件同步Agent部署策略;获取目标服务器需要部署的Agent版本信息;判断Agent版本信息与目标服务器当前部署的Agent版本是否一致;若Agent版本信息与目标服务器当前部署的Agent版本一致,则更新Agent部署包对应的配置文件,并上传Agent部署状态;若Agent版本信息与目标服务器当前部署的Agent版本不一致,则通过git版本管理机制判断目标服务器内是否已包含需要部署的Agent版本信息;若目标服务器内已包含需要部署的Agent版本信息,则将目标服务器当前部署的Agent版本切换至需要部署的Agent版本,并进入更新Agent部署包以及对应的配置文件,并上传Agent部署状态的步骤;若目标服务器内未包含需要部署的Agent版本信息,则从git仓库中下载需要部署的Agent版本,并进入将目标服务器当前部署的Agent版本切换至需要部署的Agent版本的步骤。
2.根据权利要求1所述的基于git版本控制的Agent部署升级方法,其特征在于,将Agent部署包上传到git仓库并配置Agent部署策略的步骤,包括以下具体步骤:
获取需要部署的Agent部署包和对应的配置文件;
将Agent部署包和对应的配置文件提交至git仓库;
上报目标服务器地址,并对目标服务器进行分组;
设置每组目标服务器需要部署的Agent版本信息;
设置Agent的执行操作命令。
3.根据权利要求2所述的基于git版本控制的Agent部署升级方法,其特征在于,更新Agent部署包对应的配置文件,并上传Agent部署状态的步骤,包括以下具体步骤:
获取Agent部署包对应的配置文件的版本信息;
判断配置文件的版本信息是否与目标服务器当前的配置文件版本信息一致;
若配置文件的版本信息与目标服务器当前的配置文件版本信息一致,则上传Agent部署状态;
若配置文件的版本信息与目标服务器当前的配置文件版本信息不一致,则通过git版本管理机制判断目标服务器内是否已包含需要部署的Agent部署包对应配置文件的版本;
若目标服务器内已包含需要部署的Agent部署包对应配置文件的版本,则将目标服务器当前配置文件的版本切换至需要部署的Agent部署包对应配置文件的版本信息,并进入上传Agent部署状态的步骤;
若目标服务器内未包含需要部署的Agent部署包对应配置文件的版本,则从git仓库中下载需要部署的Agent部署包对应配置文件的版本信息,并进入上传Agent部署状态的步骤。
4.基于git版本控制的Agent部署升级系统,其特征在于,包括组件处理单元、AgentDaemon处理单元、部署包处理单元以及部署单元;
所述组件处理单元,用于将Agent配置管理服务端组件和git仓库部署至目标服务器并各自启动;
所述Agent Daemon处理单元,用于对目标服务器部署Agent Daemon服务组件;
所述部署包处理单元,用于将Agent部署包上传到git仓库并配置Agent部署策略;
所述部署单元,用于针对Agent Daemon服务组件同步Agent部署策略,并执行Agent部署策略对应的命令操作;
所述部署单元包括同步模块、Agent版本信息获取模块、Agent版本判断模块、更新模块、Agent版本存在性判断模块、Agent版本切换模块以及Agent版本下载模块;
所述同步模块,用于Agent Daemon服务组件同步Agent部署策略;
所述Agent版本信息获取模块,用于获取目标服务器需要部署的Agent版本信息;
所述Agent版本判断模块,用于判断Agent版本信息与目标服务器当前部署的Agent版本是否一致;
所述更新模块,用于若Agent版本信息与目标服务器当前部署的Agent版本一致,则更新Agent部署包对应的配置文件,并上传Agent部署状态;
所述Agent版本存在性判断模块,用于若Agent版本信息与目标服务器当前部署的Agent版本不一致,则通过git版本管理机制判断目标服务器内是否已包含需要部署的Agent版本信息;
所述Agent版本切换模块,用于若目标服务器内已包含需要部署的Agent版本信息,则将目标服务器当前部署的Agent版本切换至需要部署的Agent版本;
所述Agent版本下载模块,用于若目标服务器内未包含需要部署的Agent版本信息,则从git仓库中下载需要部署的Agent版本。
5.根据权利要求4所述的基于git版本控制的Agent部署升级系统,其特征在于,所述部署包处理单元包括资料获取模块、提交模块、地址上报模块、版本信息设置模块以及命令设置模块;
所述资料获取模块,用于获取需要部署的Agent部署包和对应的配置文件;
所述提交模块,用于将Agent部署包和对应的配置文件提交至git仓库;
所述地址上报模块,用于上报目标服务器地址,并对目标服务器进行分组;
所述版本信息设置模块,用于设置每组目标服务器需要部署的Agent版本信息;
所述命令设置模块,用于设置Agent的执行操作命令。
6.根据权利要求5所述的基于git版本控制的Agent部署升级系统,其特征在于,所述更新模块包括文件版本获取子模块、文件版本判断子模块、状态上传子模块、文件版本存在性判断子模块、文件版本切换子模块以及文件版本下载子模块;
所述文件版本获取子模块,用于获取Agent部署包对应的配置文件的版本信息;
所述文件版本判断子模块,用于判断配置文件的版本信息是否与目标服务器当前的配置文件版本信息一致;
所述状态上传子模块,用于若配置文件的版本信息与目标服务器当前的配置文件版本信息一致,则上传Agent部署状态;
所述文件版本存在性判断子模块,用于若配置文件的版本信息与目标服务器当前的配置文件版本信息不一致,则通过git版本管理机制判断目标服务器内是否已包含需要部署的Agent部署包对应配置文件的版本;
所述文件版本切换子模块,用于若目标服务器内已包含需要部署的Agent部署包对应配置文件的版本,则将目标服务器当前配置文件的版本切换至需要部署的Agent部署包对应配置文件的版本信息;
所述文件版本下载子模块,用于若目标服务器内未包含需要部署的Agent部署包对应配置文件的版本,则从git仓库中下载需要部署的Agent部署包对应配置文件的版本信息。
CN201711063697.7A 2017-11-02 2017-11-02 基于git版本控制的Agent部署升级方法及系统 Active CN107659458B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711063697.7A CN107659458B (zh) 2017-11-02 2017-11-02 基于git版本控制的Agent部署升级方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711063697.7A CN107659458B (zh) 2017-11-02 2017-11-02 基于git版本控制的Agent部署升级方法及系统

Publications (2)

Publication Number Publication Date
CN107659458A CN107659458A (zh) 2018-02-02
CN107659458B true CN107659458B (zh) 2021-04-13

Family

ID=61095769

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711063697.7A Active CN107659458B (zh) 2017-11-02 2017-11-02 基于git版本控制的Agent部署升级方法及系统

Country Status (1)

Country Link
CN (1) CN107659458B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108540341B (zh) * 2018-03-19 2021-01-29 云宏信息科技股份有限公司 资源监控方法及装置
CN108829433A (zh) * 2018-05-24 2018-11-16 努比亚技术有限公司 一种web系统版本部署方法、设备和存储介质
DK3617875T3 (da) * 2018-08-27 2021-07-19 Ovh Fremgangsmåde til forbedret automatiseret softwareopdatering ved anvendelse af et netværksapparat
CN112416385A (zh) * 2020-08-13 2021-02-26 上海哔哩哔哩科技有限公司 采集组件管理方法和系统
CN112272200B (zh) * 2020-09-11 2022-05-13 苏州浪潮智能科技有限公司 Gitlab容器云工作负载部署版本管理方法及装置
CN113031977A (zh) * 2021-04-07 2021-06-25 深圳云之家网络有限公司 一种软件批量化安装方法以及相关装置
CN114327499B (zh) * 2021-12-28 2024-05-14 浪潮卓数大数据产业发展有限公司 一种异地服务快速部署与回滚的方法、装置、设备及介质
CN116820526B (zh) * 2023-08-25 2023-11-24 建信金融科技有限责任公司 操作系统升级方法、装置、设备及存储介质
CN117319196B (zh) * 2023-10-26 2024-05-14 无锡芯光互连技术研究院有限公司 一种用户服务器集群环境部署管理系统及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101945135A (zh) * 2010-09-20 2011-01-12 中兴通讯股份有限公司 一种widget系统的升级方法及系统
US7937482B1 (en) * 2008-03-27 2011-05-03 Amazon Technologies, Inc. Scalable consensus protocol
CN102339366A (zh) * 2010-07-28 2012-02-01 上海交泰信息科技有限公司 基于射频手机的OMA DRM Agent及其RO设计方法
CN102868731A (zh) * 2012-08-27 2013-01-09 济南大学 软件在线升级及加速下载的方法和装置
CN103049268A (zh) * 2012-12-25 2013-04-17 中国科学院深圳先进技术研究院 一种基于Naplet的应用开发管理系统
CN106997297A (zh) * 2017-03-31 2017-08-01 广东亿迅科技有限公司 一种基于DevOps的软件开发管理平台及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9052961B2 (en) * 2012-03-02 2015-06-09 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7937482B1 (en) * 2008-03-27 2011-05-03 Amazon Technologies, Inc. Scalable consensus protocol
CN102339366A (zh) * 2010-07-28 2012-02-01 上海交泰信息科技有限公司 基于射频手机的OMA DRM Agent及其RO设计方法
CN101945135A (zh) * 2010-09-20 2011-01-12 中兴通讯股份有限公司 一种widget系统的升级方法及系统
CN102868731A (zh) * 2012-08-27 2013-01-09 济南大学 软件在线升级及加速下载的方法和装置
CN103049268A (zh) * 2012-12-25 2013-04-17 中国科学院深圳先进技术研究院 一种基于Naplet的应用开发管理系统
CN106997297A (zh) * 2017-03-31 2017-08-01 广东亿迅科技有限公司 一种基于DevOps的软件开发管理平台及方法

Also Published As

Publication number Publication date
CN107659458A (zh) 2018-02-02

Similar Documents

Publication Publication Date Title
CN107659458B (zh) 基于git版本控制的Agent部署升级方法及系统
US9250672B2 (en) Cloning target machines in a software provisioning environment
US9405630B2 (en) Methods and apparatus to perform site recovery of a virtual data center
US11016761B2 (en) Container based application reification
US8024721B2 (en) System and method for implementing a safe framework
US10797952B1 (en) Intelligent rollback analysis of configuration changes
US10958720B2 (en) Methods, apparatuses and systems for cloud based disaster recovery
US8612799B2 (en) Method and apparatus of backing up subversion repository
CN112214227A (zh) 一种边缘服务器镜像定制化及部署系统和方法
EP4162649B1 (en) Stable references for network function life cycle management automation
US10146520B1 (en) Updating a running application on a computing device
CN112702195A (zh) 网关配置方法、电子设备及计算机可读存储介质
US20080059949A1 (en) System and method for implementing a safe framework
CN112732285A (zh) 适用于云计算linux操作系统的升级方法、装置及电子设备
CN114443239A (zh) 一种注入容器的方法及装置
CN108363607B (zh) 一种云平台虚拟机的虚拟链路断电恢复方法
CN106484442B (zh) 服务器系统及更新开机映像档的方法
US11178221B2 (en) Methods, apparatuses and systems for cloud-based disaster recovery
US20200192763A1 (en) Methods, apparatuses and systems for cloud-based disaster recovery
CN106708541A (zh) 版本升级处理方法及装置
CN114003256A (zh) 一种服务器fru信息更新方法、装置、设备及存储介质
US20150350340A1 (en) Management of headless hardware in data center
CN109254899B (zh) 一种服务器监控方法和装置
US11477090B1 (en) Detecting deployment problems of containerized applications in a multiple-cluster environment
CN110098963B (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
GR01 Patent grant
GR01 Patent grant