gitlab与jenkins持续集成的一种途径

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/moxiaomomo/article/details/82850487
  • 环境准备

本文主要简要记录gitlab与jenkins的持续集成过程,并通过SSH完成kubernetes应用的自动部署。
jenkins所需基本的插件包括:Gitlab Hook Plugin,Gitlab Plugin,Docker Plugin,Publish over SSH等。
假设已经安装好了gitlab以及jenkins,构建所需的Docker环境,以及Kubernetes等。

  • 自动构建部署流程

一张图说明当前自动构建的流程:
在这里插入图片描述

  • 操作步骤
  1. jenkins添加访问gitlab的凭据:
凭据->系统->全局凭据 (unrestricted)->添加凭据->选择<Username with password>,
填入gitlab用户名密码后,确定添加会生成一个新的凭据。
  1. jenkins添加Publish over SSH,用于远程k8s部署
配置->Publish over SSH, 填入密码或rsa private key,以及要执行远程command的host,用户名等
  1. jenkins添加Docker云,用于打包docker镜像
系统管理->系统配置->新增一个云->Docker,
按照实际情况填写docker相关参数
  1. jenkins添加gitlab源
Git Repositories选择要拉取的源地址,如https://xx.com/xxx.git,
触发条件选择 Build when a change is pushed to GitLab,
然后记录下GitLab webhook URL Secret Token这两个参数,用作gitlab访问jenkins时的凭据
  1. gitlab配置webhook
工程主页->设置->集成,
分别将上个步骤获得的两个参数填入 链接(URL), 安全令牌 这两项中。
点击 增加WebHook
  1. jenkins配置构建环境及添加构建步骤
不同的语言需要不同的插件支持,可以先在插件管理中安装对应插件后再在构建环境中勾选选项;
构建步骤可以添加shell脚本,或者其他一些操作;
构建步骤最后勾选 Build/Publish Docker Image,选择刚才添加好的Docker云,设置好镜像tag及勾选Push Iamge等参数。
  1. 远程执行kubectl,更新service等
增加构建后步骤->Send build artifacts over SSH, 
配置相关shell command执行更新操作,如kubectl apply -f xxx.yml
  1. 向gitlab报告pipeline状态
增加构建后步骤->Publish build status to Gitlab

至此, 当git push到指定分支时,便能在gitlab的CI/CD->流水线页面下查询当前的集成构建状态。

猜你喜欢

转载自blog.csdn.net/moxiaomomo/article/details/82850487