一种基于脚本的Git与Harbor数据同步方法及系统技术方案

技术编号:26504882 阅读:29 留言:0更新日期:2020-11-27 15:32
本发明专利技术提供一种基于脚本的Git与Harbor数据同步方法及系统,属于云计算技术领域,本发明专利技术包括Git与Harbor的数据同步两部分。同步模块部署于中心仓库于区域仓库之间的中间节点,暴露分别面向中心仓库与区域仓库的服务API,实时监听API请求,当同步模块接收到API请求后,建立线程队列,依次执行数据同步线程。采用此种方法,达到了云计算环境下跨仓库的Git和Harbor数据同步目的。

【技术实现步骤摘要】
一种基于脚本的Git与Harbor数据同步方法及系统
本专利技术涉及云计算技术,涉及在云计算环境的生命周期管理中,基于脚本的Git和Harbor数据的跨仓库同步方法及系统。
技术介绍
云计算作为一种创新型的计算模式,具有低成本、高性能、便于维护的特点。云计算技术的成熟推动云计算平台建设步伐,伴随着云计算平台建设数量的扩大,需要管理的云计算平台数量的也相应的扩大。在云计算平台的管理中,中心仓库存放着云平台生命周期管理的大量的代码库和镜像库,各区域仓库仅存放在用的代码库和镜像库,当区域云计算平台升级时,需要根据升级需求获得中心仓库的代码和镜像,若采用人工拷贝传送的方式,则会面临繁琐的操作步骤,浪费大量的时间和人力。
技术实现思路
为了解决以上技术问题,本专利技术提供了一种基于脚本的Git与Harbor数据同步方法,实现中心仓库到区域仓库的Git和Harbor数据同步功能,避免人工手动的数据拷贝传输工作,提高多区域云计算平台管理的效率。本专利技术的技术方案是:一种基于脚本的Git与Harbor数据同步方法,在中心仓库与区域仓库之间的中间节点上部署并接收API请求,执行Git数据的同步和Harbor数据的同步。包括Git与Harbor的数据同步两部分,将同步模块部署于中心仓库于区域仓库之间的中间节点,暴露分别面向中心仓库与区域仓库的服务API,实时监听API请求,当同步模块接收到API请求后,建立线程队列,依次执行数据同步线程。所述的Git数据同步法,是以中间节点的存储作为缓存,配置远端仓库的连接信息,获取中心仓库的内容后,再推送内容到区域仓库。所述的Harbor数据同步,是以中间节点的存储作为缓存,拉取中心仓库的镜像后,对镜像配置区域仓库的镜像Tag,并将标记此Tag的镜像推送到区域仓库中。1、设置配置表按照区域ID分别存储中心仓库及区域仓库Git连接信息,同时按照区域ID分别存储中心仓库及区域仓库Harbor连接信息。typeurlusernamepasswordisVaildcenter-gitxxx.xxx.xxxxxxxxxtruecenter-harborxxx.xxx.xxxxxxxxxtrueregion-gitxxx.xxx.xxxxxxxxxtrueregion-harborxxx.xxx.xxxxxxxxxtrue字段说明:type为配置类型字段,有四种类型center-git、center-harbor、region-git、region-harbor;url为对应配置的连接地址;username为对应配置的用户名;password为对应配置的连接密码;isVaild表示该项配置是否启用,可选项为true或false。2、同步Git数据(1)同步模块面向中心仓库及区域仓库暴露服务API,当同步模块接收到来自中心仓库或区域仓库的同步Git数据的API请求,将请求内容处理后加入到线程队列,等待同步任务调度。(2)定时从线程队列中获取优先级的最高的同步线程,开始执行Git数据同步。(3)同步模块由配置表中获取中心仓库的连接信息,同步模块初始化同步任务缓存目录,完成远端中心仓库信息配置。(4)同步模块从远端中心仓库拉取指定内容暂存缓存目录,由配置表中获取区域仓库的连接信息,再将该连接信息配置到本地缓存项目仓库,再将本地缓存文件推送到远端区域仓库。(5)关闭Git同步线程,清理本地缓存文件。3、同步Harbor数据(1)当同步模块接收到来自中心仓库的同步Harbor数据的API请求,将请求内容处理后加入到线程队列,等待同步任务调度。(2)定时从线程队列中获取优先级的最高的同步线程,开始执行Harbor数据同步。(3)同步模块由配置表中获取中心仓库的连接信息,同步模块Pull远端中心仓库的镜像文件暂存于本地镜像库,由配置表中获取区域仓库的连接信息,根据配置表中中url地址重新配置该镜像的标签,最后Push该Tag到区域Harbor仓库。(9)关闭Harbor同步线程,清理本地缓存文件。此外,本专利技术还公开了一种基于脚本的Git与Harbor数据同步系统,数据同步功能由三部份组成共同实现:APIServer,线程调度,同步模块;其中,APIServer监听来自中心仓库以及区域仓库的用户请求;线程调度负责调度同步线程;同步模块负责执行Git和Harbor的数据同步操作;以上三个主要模块均部署于中心仓库于区域仓库之间的中间节点;区域仓库中的客户端作为同步任务的发起端,最终通过中间节点获取中心仓库中的文件内容,同步到区域仓库中。同步任务执行实施方式如下:(1)区域仓库用户调用数据同步API,位于中间节点上的APIServer监听到用户请求,将请求内容处理后加入到线程队列。(2)线程调度模块从线程队列中获取优先级的最高的同步线程,判别同部数据类型,执行Git数据同步或Harbor数据同步。(3)若同步数据类型为Git数据,则将执行Git同步模块;同步模块初始化同步任务缓存目录,完成远端中心仓库信息配置。(4)Git同步模块从远端中心仓库拉取指定内容暂存到本机的缓存目录,后根据配置的远端区域仓库信息,再将本地缓存文件推送到远端区域仓库。(5)若同步数据类型为Harbor数据,则将执行Harbor同步模块;(6)Harbor同步模块Pull远端中心仓库的镜像文件暂存于本地镜像库,后配置远端区域仓库的Tag,再Push该Tag到区域Harbor仓库。(7)关闭同步线程,清理本地缓存文件。本专利技术的有益效果是实现了中心仓库区域仓库的跨区域数据同步功能,避免了人工手动拷贝传输的繁琐步骤,节省云计算平台的升级时间,提高平台交付速度。同时若区域仓库的数据需要在中心仓库中备份,同样支持数据反向推送。附图说明图1是本专利技术的数据同步架构示意图;图2是本专利技术的同步任务执行流程示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例,基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术主要由两部分组成,第一部分对Git数据进行同步,第二部分对Harbor数据进行同步。参见图1,本专利技术的数据同步架构如下:数本文档来自技高网...

【技术保护点】
1.一种基于脚本的Git与Harbor数据同步方法,其特征在于,/n在中心仓库与区域仓库之间的中间节点上部署并接收API请求,执行Git数据的同步和Harbor数据的同步。/n

【技术特征摘要】
1.一种基于脚本的Git与Harbor数据同步方法,其特征在于,
在中心仓库与区域仓库之间的中间节点上部署并接收API请求,执行Git数据的同步和Harbor数据的同步。


2.根据权利要求1所述的方法,其特征在于,
包括Git与Harbor的数据同步两部分,将同步模块部署于中心仓库于区域仓库之间的中间节点,暴露分别面向中心仓库与区域仓库的服务API,实时监听API请求,当同步模块接收到API请求后,建立线程队列,依次执行数据同步线程。


3.根据权利要求2所述的方法,其特征在于,
所述的Git数据同步法,是以中间节点的存储作为缓存,配置远端仓库的连接信息,获取中心仓库的内容后,再推送内容到区域仓库。


4.根据权利要求2或3所述的方法,其特征在于,
所述的Harbor数据同步,是以中间节点的存储作为缓存,拉取中心仓库的镜像后,对镜像配置区域仓库的镜像Tag,并将标记此Tag的镜像推送到区域仓库中。


5.根据权利要求2所述的方法,其特征在于,
按照区域ID分别存储中心仓库及区域仓库Git连接信息,同时按照区域ID分别存储中心仓库及区域仓库Harbor连接信息。


6.根据权利要求4所述的方法,其特征在于,
所述同步Git数据包括:
(1)同步模块面向中心仓库及区域仓库暴露服务API,当同步模块接收到来自中心仓库或区域仓库的同步Git数据的API请求,将请求内容处理后加入到线程队列,等待同步任务调度;
(2)定时从线程队列中获取优先级的最高的同步线程,开始执行Git数据同步;
(3)同步模块由配置表中获取中心仓库的连接信息,同步模块初始化同步任务缓存目录,完成远端中心仓库信息配置;
(4)同步模块从远端中心仓库拉取指定内容暂存缓存目录,由配置表中获取区域仓库的连接信息,再将该连接信息配置到本地缓存项目仓库,再将本地缓存文件推送到远端区域仓库;
(5)关闭Git同步线程,清理本地缓存文件。


7.根据权利要求4所述的方法,其特征在于,
所述同步Harbor数据包括:
(1)当...

【专利技术属性】
技术研发人员:宋喆魏金雷杨继伟孙思清高传集
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1