IT学习站-137zw.com

more +资源更新Forums

more +随机图赏Gallery

10节课让你成为滚床单高手  强烈推荐 屌丝的福音10节课让你成为滚床单高手 强烈推荐 屌丝的福音
Spring Boot编程思想(核心篇) PDF 电子书 百度云 网盘下载Spring Boot编程思想(核心篇) PDF 电子书 百度云 网盘下载
最新流出的传智博学谷黑马python5.0课程最新流出的传智博学谷黑马python5.0课程
MySQL视频教程价值288元MySQL面试指南视频教程 百度云 百度...MySQL视频教程价值288元MySQL面试指南视频教程 百度云 百度...
python基础教程编程数据分析excel源代码pandas视频教学数据处理python基础教程编程数据分析excel源代码pandas视频教学数据处理
价值388元 Spark Streaming实时流处理项目实战视频教程 百度云盘价值388元 Spark Streaming实时流处理项目实战视频教程 百度云盘

基于GitLab+Jenkins的DevOps赋能实践

基于GitLab+Jenkins的DevOps赋能实践

[复制链接]
我爱萨其马虞co | 显示全部楼层 发表于: 2019-11-14 12:25:03
我爱萨其马虞co 发表于: 2019-11-14 12:25:03 | 显示全部楼层 |阅读模式
查看: 118|回复: 0

你还没有注册,无法下载本站所有资源,请立即注册!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
随着微服务、中台架构的兴起,DevOps也变得非常关键,毕竟是一些基础设施层面的建设,如果搞好了对后面的研发工作会有很大的效率提升。关于DevOps本身的概念,网上已经非常多了,在园子里随便搜索一些都一堆概念,我就不再重复介绍了。下面直接进入正题,怎么使用GitLab+Jenkins来完成DevOps的建设。
    在开始实战演练之前,首先用一张图来展示一下这次实践所要完成的功能:
   
基于GitLab+Jenkins的DevOps赋能实践  技术博客 847144-20190909203654233-401087506

    在这个流程中,分为3个环境,分别是预览环境、预发环境和生产环境,普通开发者接受到任务以后,在GitLab中基于feature分支进行开发,然后把开发好的需求申请合并到dev分支,在申请合并的过程中,会触发构建流水线进行编译、单元测试、接口测试、发布环境等系列校验,当pipeline完成以后,组长就可以在代码审查后,进行合并到dev分支。这个时候又会触发dev分支的构建流水线,然后再完成一遍上述的流程,把代码发布到预发环境。最后由项目负责人定期把dev合并到master分支,完成生产环境版本发布。
    首先,在GitLab中创建一个测试项目:
基于GitLab+Jenkins的DevOps赋能实践  技术博客 847144-20190909214926741-1963373148

    这个项目是在lizongshenblogs的group下面的applications子group下的一个项目,代表了这是一个源代码项目。
接下来再为这个项目创建3个流水线配置,主要目的是为了让代码和配置分离:
基于GitLab+Jenkins的DevOps赋能实践  技术博客 847144-20190909222905048-1292457475

     在3个配置项目中,分别存放了相应的Jenkinsfile,用于Jenkins流水线的构建配置,接下来开始配置Jenkins。首先进行Jenkins的全局配置:在Jenkins的Manage Jenkins - Configure System下面配置Gitlab Connection,如图:
基于GitLab+Jenkins的DevOps赋能实践  技术博客 847144-20190909224040294-2081654437


在这里需要注意,这个connection是需要一个gitlab的访问令牌,可以在gitlab的个人设置 - 访问令牌里面生成,生成完成之后,填入到相应的Credentials里面:
基于GitLab+Jenkins的DevOps赋能实践  技术博客 847144-20190909224229452-1705930437


最后测试一下,连接是否成功,只要显示success,就可以了。

接下来就可以配置具体pipeline了,首先使用Jenkins的New Item分别创建3个流水线类型的项目:
基于GitLab+Jenkins的DevOps赋能实践  技术博客 847144-20190909223407418-456988773


    在Jenkins中新建3个流水线类型的项目,分别叫feature-pipeline、dev-pipeline、master-pipeline,然后对这3个项目分别进行配置,先来看feature-pipeline的配置:
    首先要配置的项是Build Triggers,在其中勾选Opened Merge Request Events,并且把Rebuild open Merge Requests设置成On push to source branch:
基于GitLab+Jenkins的DevOps赋能实践  技术博客 847144-20190909225138986-95363266



然后点击Advanced按钮,进行高级设置:
基于GitLab+Jenkins的DevOps赋能实践  技术博客 847144-20190909225248709-288784317


这里需要注意的地方是原分支是任何分支,目标分支是dev分支,然后生成一个Secret token,这个token在配置gitlan webhooks的时候会用到。
接下来是配置Pipeline项:
基于GitLab+Jenkins的DevOps赋能实践  技术博客 847144-20190909225547930-1571320685



     这个地方需要配置具体的流水线仓储的地址,在credentials的地方,使用账号密码登录到gitlab即可。
    dev流水线和master流水线配置略有不同,其中dev分支需要配置成accepted merge request events,意思就是当组长接受合并请求的时候触发:
基于GitLab+Jenkins的DevOps赋能实践  技术博客 847144-20190909225840674-1662363002



     而master分支需要改变的地方是匹配的分支,表示只接受从dev分支到master分支的合并请求:
基于GitLab+Jenkins的DevOps赋能实践  技术博客 847144-20190909230058173-945521502



     到这里Jenkins的配置已经配置完成,接下来再回到gitlab进行联动配置,首先配置项目的webhoos,在项目的Integrations Settings里面添加一个webhooks:
基于GitLab+Jenkins的DevOps赋能实践  技术博客 847144-20190909230415422-171211761



    其中URL就填写Jenkins的Build Triggers项目自动生成的那个URL,secret token是在Build Triggers的高级选项里面生成的那个token,触发的选项选择Merge request events,表示当合并请求的时候进行触发,点击保存,gitlab和Jenkins的配置基本上就完成了。
    最后看一下3个项目中的Jenkinsfile:   其中updateGitlabCommitStatus就可以实时地把Jenkins的构建状态发回到gitlab中去:
基于GitLab+Jenkins的DevOps赋能实践  技术博客 847144-20190909231802859-343395899


    点击这些构建状态,就可以实时地查看到构建日志。在这里gitlab和Jenkins的配置基本上就全部完成了,接下来再看一下gitlab中关于代码管理配置,一般情况下,dev分支和master分支是不允许直接push代码的,只允许从需求分支中合并代码,这就需要在gitlab的       Settings - Repository - Protected Branches中把dev和master保护起来:
基于GitLab+Jenkins的DevOps赋能实践  技术博客 847144-20190909232207029-1903013066


     另外还可以设置只有当流水线成功了以后,才可以进行合并:
基于GitLab+Jenkins的DevOps赋能实践  技术博客 847144-20190909232339299-82350952


    通过这样一些保护措施,就可以让dev和master分支变得相对稳定。由于篇幅有限,如果有不明白的地方,可以私下找我相互交流。DevOps是一个很广泛的话题,今天讲的GitLab+Jenkins这套流程只是DevOps中的一部分,完全实现DevOps还需要更多的流程配合,以后有机会再为大家分享。


来源:http://www.137zw.com
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
137zw.com IT学习站致力于免费提供精品的java技术教程和python技术教程,CCNA书籍/资料/CCNP书籍/资料教程/CCIE书籍/资料/H3C学习/认证/一级建造师考试/微软学习/认证/包括基础教程和高级实战教程,同时也提供分享网站源码下载和互联网相关一系列的技术教程,我们想做的就是让知识分享更有价值!(IT学习站官方唯一域名地址:www.137zw.com 请谨防假冒网站!)本站所有资源全部收集于互联网或网友自行分享,分享目的仅供大家学习与参考,如无意中侵犯您的合法权益,请联系本站管理员进行删除处理!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

浙ICP备19022368号-1|Archiver|手机版|IT学习站-137zw.com

GMT+8, 2020-7-10 23:46 , Processed in 10.186644 second(s), 34 queries .

快速回复 返回顶部 返回列表