基于gitlab-ci的灵活安全CI/CD服务部署系统及方法技术方案

技术编号:33145653 阅读:56 留言:0更新日期:2022-04-22 13:57
本发明专利技术公开了基于gitlab

【技术实现步骤摘要】
基于gitlab

ci的灵活安全CI/CD服务部署系统及方法


[0001]本专利技术涉及运维管理领域,具体地说是一种基于gitlab

ci的灵活安全CI/CD服务部署系统及方法。

技术介绍

[0002]CI/CD是指可持续集成持续部署,目前主流的CI/CD工具是jenkins,但是鉴于jenkins联动gitlab需要配置插件以及鉴于目前广泛地使用gitlab来进行版本管理的情况,gitlab

ci搭配自动部署方案渐渐成为更好的替代方案。
[0003]而目前gitlab

ci的服务部署方法很多基于容器来进行管理。对于不适用容器的部署方案,多种环境私有部署方案没有较好的解决方式。
[0004]另外,多种环境部署服务包的管理、存储等,部署服务包的配置项管理在手动记录的方式下会变得混乱。而对于配置项的管理,假如直接放在gitlab

ci的管理文件中,不仅会导致管理文件冗长,也会导致很多关键信息暴露给所有项目相关人员,带来一定的安全风险。
[0005]故如何实现服务部署包适配多种部署方案及网络环境,提高配置项安全性,同时提高持续集成持续部署效率是目前亟待解决的问题。

技术实现思路

[0006]本专利技术的技术任务是提供一种基于gitlab

ci的灵活安全CI/CD服务部署系统及方法,来解决如何实现服务部署包适配多种部署方案及网络环境,提高配置项安全性,同时提高持续集成持续部署效率的问题。
[0007]本专利技术的技术任务是按以下方式实现的,一种基于gitlab

ci的灵活安全CI/CD服务部署系统,该系统包括,
[0008]配置管理模块,用于项目管理、配置文件结构管理及配置项加密管理;
[0009]预处理模块,用于触发打包,并解析环境及机器生成对应的配置文件;
[0010]gitlab

ci打包模块,用于触发CI/CD触发后,开启gitlab

ci流水线,读取调度系统参数以及经由调度系统组装的配置文件,将任务推送到gitlab runner(CI/CD执行机器)队列;
[0011]服务包整合模块,用于服务包存储及服务包的自动部署。
[0012]作为优选,所述配置管理模块包括,
[0013]项目管理子模块,用于修改配置文件;
[0014]配置文件结构管理子模块,用于提交最新配置文件结构;
[0015]配置项加密管理子模块,用于依据最新配置文件,整理各环境配置项,并加密存储。
[0016]更优地,所述预处理模块包括,
[0017]打包触发子模块,用于通过提交代码的方式触发预配置打包或通过可视化界面内
手动触发打包;
[0018]环境机器管理子模块,用于解析环境及机器,读取配置文件配置项,生成配置文件。
[0019]更优地,所述预处理模块还包括,
[0020]选择子模块,用于选择开发、测试或正式环境和目标机器。
[0021]作为优选,所述gitlab

ci打包模块包括,
[0022]配置项写入子模块,用于编写打包以及处理配置文件脚本;
[0023]自动打包子模块,用于获取配置文件,自动完成gitlab

ci的打包;
[0024]服务包上传子模块,用于上传服务包。
[0025]作为优选,所述服务包整合模块包括,
[0026]服务包存储子模块,用于接收部署包,规范版本信息,依据环境上传到资源中心指定位置,并记录最新版本;
[0027]服务包自动部署子模块,用于依据目标机器自动部署服务包或生成一键部署脚本。
[0028]更优地,所述服务包整合模块的工作过程具体如下:
[0029](1)、gitlab

ci打包完成后,通知调度系统开始进行部署包上传至资源中心;
[0030](2)、依据初始触发条件,开始部署包的部署脚本生成,包含更新脚本、初次部署脚本以及更新回滚脚本;
[0031](3)、调度系统将会检查目标机器是否自动部署:
[0032]若通过检查,则自动推送部署包到目标环境机器,并触发自动部署脚本。
[0033]一种基于gitlab

ci的灵活安全CI/CD服务部署方法,该方法具体如下:
[0034]初始化阶段:通过超级管理员设置系统的角色并配置角色权限;其中,调度系统默认的初始化角色包括超级管理员、devops人员、实施人员、测试人员和开发人员;
[0035]配置及环境定义阶段:依据实际业务需求定义配置文件模板以及环境模板,调度系统将提供依据环境来自动提取加密配置项,并生成配置文件功能;
[0036]打包部署阶段:各个角色依据实际业务需求触发自动打包以及部署过程;
[0037]版本维护阶段:当项目需要进行发版时,调度系统会将当前项目配置文件模板,发版分支自动打上版本号tag,并将配置项依据版本号另存为新的条目,以方便随时找回各个版本部署包。
[0038]作为优选,所述配置文件模板是根据提交的本体配置文件制作的通用模板,替换配置项中的配置文件;配置文件模板由版本管理工具进行管理;
[0039]环境模板是将各个项目环境进行分类管理;项目环境包括开发环境、测试环境、线上单节点环境及线上集群环境;
[0040]对于开发人员,依据项目分支,在提交代码后自动触发CI/CD,部署在分支名相匹配的环境中。
[0041]更优地,打包部署阶段具体如下:
[0042]对于所有角色,在调度系统中,填写是否部署、环境、机器以及项目分支的信息后,主动触发CI/CD过程;
[0043]CI/CD触发后,gitlab

ci开启流水线,读取调度系统参数以及经由调度系统组装
的配置文件,将任务推送到gitlab runner(CI/CD执行机器)队列;
[0044]gitlab

ci打包完成后,通知调度系统开始进行部署包上传至资源中心;
[0045]依据初始触发条件,开始部署包的部署脚本生成,包含更新脚本、初次部署脚本以及更新回滚脚本;
[0046]调度系统将会检查目标机器是否自动部署:
[0047]若通过检查,则自动推送部署包到目标环境机器,并触发自动部署脚本。
[0048]本专利技术的基于gitlab

ci的灵活安全CI/CD服务部署系统及方法具有以下优点:
[0049](一)本专利技术可以区分多种环境,具有非常高的灵活性,能够快速满足多变的环境需求;
[0050](二)本专利技术实现了配置项加密储存,且对非业务人员不可见,保证信息的隐私性、完整性、防止篡改行为与抵赖行为;
[0051](三)本发本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于gitlab

ci的灵活安全CI/CD服务部署系统,其特征在于,该系统包括,配置管理模块,用于项目管理、配置文件结构管理及配置项加密管理;预处理模块,用于触发打包,并解析环境及机器生成对应的配置文件;gitlab

ci打包模块,用于触发CI/CD触发后,开启gitlab

ci流水线,读取调度系统参数以及经由调度系统组装的配置文件,将任务推送到gitlab runner队列;服务包整合模块,用于服务包存储及服务包的自动部署。2.根据权利要求1所述的基于gitlab

ci的灵活安全CI/CD服务部署系统,其特征在于,所述配置管理模块包括,项目管理子模块,用于修改配置文件;配置文件结构管理子模块,用于提交最新配置文件结构;配置项加密管理子模块,用于依据最新配置文件,整理各环境配置项,并加密存储。3.根据权利要求1或2所述的基于gitlab

ci的灵活安全CI/CD服务部署系统,其特征在于,所述预处理模块包括,打包触发子模块,用于通过提交代码的方式触发预配置打包或通过可视化界面内手动触发打包;环境机器管理子模块,用于解析环境及机器,读取配置文件配置项,生成配置文件。4.根据权利要求3所述的基于gitlab

ci的灵活安全CI/CD服务部署系统,其特征在于,所述预处理模块还包括,选择子模块,用于选择开发、测试或正式环境和目标机器。5.根据权利要求1所述的基于gitlab

ci的灵活安全CI/CD服务部署系统,其特征在于,所述gitlab

ci打包模块包括,配置项写入子模块,用于编写打包以及处理配置文件脚本;自动打包子模块,用于获取配置文件,自动完成gitlab

ci的打包;服务包上传子模块,用于上传服务包。6.根据权利要求1所述的基于gitlab

ci的灵活安全CI/CD服务部署系统,其特征在于,所述服务包整合模块包括,服务包存储子模块,用于接收部署包,规范版本信息,依据环境上传到资源中心指定位置,并记录最新版本;服务包自动部署子模块,用于依据目标机器自动部署服务包或生成一键部署脚本。7.根据权利要求1或6所述的基于gitlab

ci的灵活安全CI/CD服务部署系统,其特征...

【专利技术属性】
技术研发人员:孙腾飞邵帅
申请(专利权)人:浪潮软件股份有限公司
类型:发明
国别省市:

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

1