一种自动化迁移镜像仓库指定目录下镜像的办法及插件制造技术

技术编号:39256338 阅读:9 留言:0更新日期:2023-10-30 12:07
本发明专利技术公开一种自动化迁移镜像仓库指定目录下镜像的办法及插件,涉及文件迁移技术领域,该方法首先通过借助镜像仓库暴露的api能力,开发程序对接api并生成待同步文件,随后编写脚本根据待同步文件批量同步,完成后清除遗留的中间文件,最后通过jenkins将前述过程整合成自动流水线,具体操作步骤包括:设计一个对接镜像仓库api的接口,获取镜像仓库指定目录下待迁移镜像信息文件;设计迁移任务,进行待同步文件的批量同步,设计清理任务,以删除本地已完成同步的文件;借助jenkins创建job,将调用接口、调用迁移任务、调用清理任务整合起来,使整个过程全自动运行。文件迁移可以实现全自动化完成镜像仓库指定目录下镜像的批量迁移。量迁移。量迁移。

【技术实现步骤摘要】
一种自动化迁移镜像仓库指定目录下镜像的办法及插件


[0001]本专利技术涉及文件迁移
,具体的说是一种自动化迁移镜像仓库指定目录下镜像的办法及插件。

技术介绍

[0002]在软件开发和部署过程中,经常需要在不同环境部署镜像仓库。每次都使用公网资源,重建整个仓库是件耗时耗力的事情。此时从已有仓库,将部分目录下镜像迁移到新的镜像仓库,将是很常见的需求。但是常见的镜像仓库如docker registry、harbor、nexus等都没有提供指定镜像的导入导出功能,因此这种情形的镜像迁移就变成了一件体力劳动,需要大量手动及重复动作。
[0003]按照常见仓库提供的能力,要完成特定目录下镜像的迁移,需要先将目录下所有镜像及镜像对应的tag全部梳理出来,然后在中转服务器或新镜像仓库服务器上执行登录旧镜像仓库,拉取指定tag的镜像,本地重新打tag指向新镜像仓库,登录新镜像仓库,上传新镜像几个步骤。而这样做的难点在于:
[0004]1)梳理镜像仓库过程量大且繁琐。在devops领域动则近千的镜像文件,很多镜像文件下又有多个tag(对应文件不同版本,在devops领域必然涉及使用不同版本进行编译),且获取镜像文件及镜像tag无法一次呈现(需要分两次查到镜像文件及镜像的tag列表),再耗费大量精力将以上信息汇总。
[0005]2)频繁切换登录旧的镜像仓库及新的镜像仓库,效率低下。
[0006]3)更改tag步骤重复、繁琐,极易出错,出错后问题不容易及时发现。
[0007]4)中转过程保存大量中间文件,占用资源,删除亦将耗费大量时间精力。

技术实现思路

[0008]本专利技术针对目前技术发展的需求和不足之处,提供一种自动化迁移镜像仓库指定目录下镜像的办法及插件,实现全自动化完成镜像仓库指定目录下镜像的批量迁移。
[0009]首先,本专利技术的一种自动化迁移镜像仓库指定目录下镜像的办法,解决上述技术问题采用的技术方案如下:
[0010]一种自动化迁移镜像仓库指定目录下镜像的办法,该方法首先通过借助镜像仓库暴露的api能力,开发程序对接api并生成待同步文件,随后编写脚本根据待同步文件批量同步,完成后清除遗留的中间文件,最后通过jenkins将前述过程整合成自动流水线,具体操作步骤包括:
[0011]S1、设计一个对接镜像仓库api的接口,获取镜像仓库指定目录下待迁移镜像信息文件;
[0012]S2、设计迁移任务,进行待同步文件的批量同步,设计清理任务,以删除本地已完成同步的文件,释放本地存储空间;
[0013]S3、借助jenkins创建job,将调用接口、调用迁移任务、调用清理任务整合起来,使
整个过程全自动运行。
[0014]可选的,执行步骤S1,获取待迁移镜像信息文件,具体操作包括:
[0015]S1.1、接口对接镜像仓库api后,通过接口获取待迁移目录下所有镜像,以目录名为参数;
[0016]S1.2、接口对接镜像仓库api后,通过接口获取镜像的degist值,以镜像名称为参数;
[0017]S1.3、接口对接镜像仓库api后,通过接口获取镜像tag,以镜像degist为参数;
[0018]S1.4、将获取的镜像名称、镜像tag进行转码,输出待迁移镜像信息的文件,文件内容每行为“镜像名称:tag”;
[0019]S1.5、对镜像信息文件按照字符串排序,相同或相似镜像连续同步,以使同步过程充分利用镜像中layer的复用。
[0020]进一步可选的,执行步骤S2,设计迁移任务,进行待同步文件的批量同步,具体操作包括:
[0021]S2.1、登录待迁移镜像仓库;
[0022]S2.2、读取镜像信息文件,拉取所有待迁移镜像;
[0023]S2.3、读取镜像信息文件,根据镜像名称和tag,根据预设规则给拉取的镜像重新打tag;
[0024]S2.4、登录新的镜像仓库;
[0025]S2.5、读取镜像信息文件,根据规则获取新镜像仓库下镜像名称和tag,push到新仓库;
[0026]S2.6、全部执行成功返回0,出现失败返回

1。
[0027]可选的,借助jenkins创建job,将调用接口、调用迁移任务、调用清理任务整合起来后,通过jenkins日志,查看迁移任务的当前进展及整个迁移过程。
[0028]其次,本专利技术的一种自动化迁移镜像仓库指定目录下镜像的插件,解决上述技术问题采用的技术方案如下:
[0029]一种自动化迁移镜像仓库指定目录下镜像的插件,其包括:
[0030]接口设计模块,用于设计一个对接镜像仓库api的接口;
[0031]文件获取模块,用于在接口对接镜像仓库api后获取镜像仓库指定目录下待迁移镜像信息文件;
[0032]迁移任务设计模块,用于设计迁移任务,通过迁移任务进行待同步文件的批量同步;
[0033]清理任务设计模块,用于设计清理任务,通过清理任务删除本地已完成同步的文件,释放本地存储空间;
[0034]整合模块,用于借助jenkins创建job,将调用接口、调用迁移任务、调用清理任务整合起来,使整个过程全自动运行。
[0035]可选的,在接口对接镜像仓库api后,文件获取模块获取镜像仓库指定目录下待迁移镜像信息文件,具体过程如下:
[0036]通过接口获取待迁移目录下所有镜像,以目录名为参数;
[0037]通过接口获取镜像的degist值,以镜像名称为参数;
[0038]通过接口通过获取镜像tag,以镜像degist为参数;
[0039]将获取的镜像名称、镜像tag进行转码,输出待迁移镜像信息的文件,文件内容每行为“镜像名称:tag”;
[0040]对镜像信息文件按照字符串排序,相同或相似镜像连续同步,以使同步过程充分利用镜像中layer的复用。
[0041]可选的,通过迁移任务进行待同步文件的批量同步,具体过程如下:
[0042]登录待迁移镜像仓库;
[0043]读取镜像信息文件,拉取所有待迁移镜像;
[0044]读取镜像信息文件,根据镜像名称和tag,根据预设规则给拉取的镜像重新打tag;
[0045]登录新的镜像仓库;
[0046]读取镜像信息文件,根据规则获取新镜像仓库下镜像名称和tag,push到新仓库;
[0047]全部执行成功返回0,出现失败返回

1。
[0048]可选的,整合模块借助jenkins创建job,将调用接口、调用迁移任务、调用清理任务整合起来后,通过jenkins日志,查看迁移任务的当前进展及整个迁移过程。
[0049]本专利技术的一种自动化迁移镜像仓库指定目录下镜像的办法及插件,与现有技术相比具有的有益效果是:
[0050]本专利技术通过借助镜像仓库暴露的api能力,开发接口对接api并生成待同步文件本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种自动化迁移镜像仓库指定目录下镜像的办法,其特征在于,该方法首先通过借助镜像仓库暴露的api能力,开发程序对接api并生成待同步文件,随后编写脚本根据待同步文件批量同步,完成后清除遗留的中间文件,最后通过jenkins将前述过程整合成自动流水线,具体操作步骤包括:S1、设计一个对接镜像仓库api的接口,获取镜像仓库指定目录下待迁移镜像信息文件;S2、设计迁移任务,进行待同步文件的批量同步,设计清理任务,以删除本地已完成同步的文件,释放本地存储空间;S3、借助jenkins创建job,将调用接口、调用迁移任务、调用清理任务整合起来,使整个过程全自动运行。2.根据权利要求1所述的一种自动化迁移镜像仓库指定目录下镜像的办法,其特征在于,执行步骤S1,获取待迁移镜像信息文件,具体操作包括:S1.1、接口对接镜像仓库api后,通过接口获取待迁移目录下所有镜像,以目录名为参数;S1.2、接口对接镜像仓库api后,通过接口获取镜像的degist值,以镜像名称为参数;S1.3、接口对接镜像仓库api后,通过接口获取镜像tag,以镜像degist为参数;S1.4、将获取的镜像名称、镜像tag进行转码,输出待迁移镜像信息的文件,文件内容每行为“镜像名称:tag”;S1.5、对镜像信息文件按照字符串排序,相同或相似镜像连续同步,以使同步过程充分利用镜像中layer的复用。3.根据权利要求2所述的一种自动化迁移镜像仓库指定目录下镜像的办法,其特征在于,执行步骤S2,设计迁移任务,进行待同步文件的批量同步,具体操作包括:S2.1、登录待迁移镜像仓库;S2.2、读取镜像信息文件,拉取所有待迁移镜像;S2.3、读取镜像信息文件,根据镜像名称和tag,根据预设规则给拉取的镜像重新打tag;S2.4、登录新的镜像仓库;S2.5、读取镜像信息文件,根据规则获取新镜像仓库下镜像名称和tag,push到新仓库;S2.6、全部执行成功返回0,出现失败返回

1。4.根据权利要求1所述的一种自动化迁移镜像仓库指定目录下镜像的办法,其特征在于,借助jenkins创建job,将调用接口、调用...

【专利技术属性】
技术研发人员:陈金龙魏子重李锐
申请(专利权)人:山东浪潮科学研究院有限公司
类型:发明
国别省市:

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

1