0


Jenkins + gitlab 自动部署

1. 背景

作为后台开发,每次我们开发完或者修改一个bug后都要手动合并,打包或者连接服务器执行打包部署命令,每次手动操作,极大的影响了我们的开发效率,那么有没有一款工具能让我们只需要推送/合并代码到远端就能实现服务自动打包,发布,部署,通知呢。因此,今天介绍的jenkins和gitlab就来了。

2. jenkins介绍

这里简介和安装就省略了,各位可以自行百度/谷歌学习下,它在我们的自动部署方案里做的重要角色就是打包,发布,部署,通知

3. gitlab介绍

做为“程序猿”的我们,相信这款工具也不会陌生,代码管理开源项目

4. 自动部署流程

4.1 流程图

4.2 各部分详解

  1. 开发推送/合并代码到我们的部署分支
  2. 代码推送到部署分支后,触发我们的推送事件,然后调用jenkins的部署任务
  3. jenkins收到部署通知后,调用企业微信的webhook发送消息,“XX项目开始部署”
  4. jenkins通过git插件拉取gitlab对应分支的代码
  5. maven打包
  6. 第五步maven打包完成后,如果是部署在宿主机服务器,则通过ssh推送jar包到对应的服务器上,并执行重启命令
  7. 最后发送企业微信通知部署完成,耗时多少。

4.3 实际操作

  1. 好了,各部分的已经大致介绍完成了,下面我们通过一个小的demo来完成我们的实际操作
  2. 推送代码到远程分支这块我们就不用说了
  3. gitlab的推送事件介绍1. 我们选择对应项目的webhooks配置2. 触发事件,可以看到有多种事件,这里我们选择的是推送事件,并且我们配置的是develop分支的推送事件3. jenkins任务令牌4. jenkins的任务地址,这个和jenkins的任务令牌后续介绍

4.4 jenkins对应job部署

  1. 新建任务
  2. 填入任务名称,这里我们选择一个自由风格的任务
  3. 配置我们项目的gitlab地址
  4. 配置远程触发地址1. 选择构建触发器,并把该url填入我们的gitlab的webhooks事件的url中2. 点击高级,生成授权码, 并把授权码填入gitlab的webhooks令牌中
  5. 配置maven构建打包
  6. 配置ssh发包
  7. 配置企业微信通知

4.5 推送示例展示

可以看到,我们单个应用自动部署800+次了,开发只需要推送代码到远端,就会自动开始自动部署。

企业微信机器人通知,当然,如果不需要插件模板也可以通过其他可以发送http请求的来自定义发送通知内容。

5. 总结

今天我们介绍了整个jenkins+gitlab的自动部署流程,用了最简单的例子来说明,如果要部署多个服务器,我们也可以在构建的时候添加多个服务器,这里是串行部署的,如果需要并行部署的话我们也可以通过pipeline的parallel ssh_publishers命令执行并行部署;如果你用的是docker或者k8s部署项目的话,我们也可以把发包的步骤换成打包后构建镜像然后推送到harbor中,通过执行远程shell脚本部署docker,执行kuboard的ci/cd api来切换线上标签。

6. 附

  1. 各个jenkins步骤所用到的插件 1. git及jdk配置, manage jenkins -> global tool configuration 2. Maven 配置 1. 新建maven,填入服务器上maven地址或者安装maven 3. 其他插件 1. manage jenkins -> Manager Plugin 1. 企业微信通知插件 Qy Wechat Notification2. ssh推送插件 Publish Over SSH​​​​​​​
标签: jenkins gitlab 运维

本文转载自: https://blog.csdn.net/WXF_Sir/article/details/131475649
版权归原作者 BUG指挥官 所有, 如有侵权,请联系我们删除。

“Jenkins + gitlab 自动部署”的评论:

还没有评论