一种基于脚本的Git与Harbor数据同步方法及系统与流程

文档序号:23090742发布日期:2020-11-27 12:42阅读:198来源:国知局
一种基于脚本的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,本发明的数据同步架构如下:数据同步功能由三部份组成共同实现。apiserver监听来自中心仓库以及区域仓库的用户请求;线程调度负责调度同步线程;同步模块负责执行git和harbor的数据同步操作。以上三个主要模块均部署于中心仓库于区域仓库之间的中间节点。区域仓库中的客户端作为同步任务的发起端,最终通过中间节点获取中心仓库中的文件内容,同步到区域仓库中。参见图2,同步任务执行实施方式如下:(1)区域仓库用户调用数据同步api,位于中间节点上的apiserver监听到用户请求,将请求内容处理后加入到线程队列。(2)线程调度模块从线程队列中获取优先级的最高的同步线程,判别同部数据类型,执行git数据同步或harbor数据同步。(3)若同步数据类型为git数据,则将执行git同步模块;同步模块初始化同步任务缓存目录,完成远端中心仓库信息配置。(4)git同步模块从远端中心仓库拉取指定内容暂存到本机的缓存目录,后根据配置的远端区域仓库信息,再将本地缓存文件推送到远端区域仓库。(5)若同步数据类型为harbor数据,则将执行harbor同步模块;(6)harbor同步模块pull远端中心仓库的镜像文件暂存于本地镜像库,后配置远端区域仓库的tag,再push该tag到区域harbor仓库。(7)关闭同步线程,清理本地缓存文件。本发明实现了git和harbor数据跨仓库同步目的,当区域仓库需要获取中心仓库的代码和镜像时,需请求同步模块所在的中间节点,由同步模块进行线程调度,实现自动化的数据同步。以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1