环境准备
本文主要简要记录gitlab与jenkins的持续集成过程,并通过SSH完成kubernetes应用的自动部署。
jenkins所需基本的插件包括:Gitlab Hook Plugin
,Gitlab Plugin
,Docker Plugin
,Publish over SSH
等。
假设已经安装好了gitlab以及jenkins,构建所需的Docker环境,以及Kubernetes等。
自动构建部署流程
一张图说明当前自动构建的流程:
主要操作步骤
- jenkins添加访问gitlab的凭据:
凭据->系统->全局凭据 (unrestricted)->添加凭据->选择,
填入gitlab用户名密码后,确定添加会生成一个新的凭据。
- jenkins添加Publish over SSH,用于远程k8s部署
配置->Publish over SSH, 填入密码或rsa private key,以及要执行远程command的host,用户名等
- jenkins添加Docker云,用于打包docker镜像
系统管理->系统配置->新增一个云->Docker,
按照实际情况填写docker相关参数
- jenkins添加gitlab源
Git Repositories选择要拉取的源地址,如https://xx.com/xxx.git,
触发条件选择 Build when a change is pushed to GitLab,
然后记录下GitLab webhook URL Secret Token这两个参数,用作gitlab访问jenkins时的凭据
- gitlab配置webhook
工程主页->设置->集成,
分别将上个步骤获得的两个参数填入 链接(URL), 安全令牌 这两项中。
点击 增加WebHook
- jenkins配置构建环境及添加构建步骤
不同的语言需要不同的插件支持,可以先在插件管理中安装对应插件后再在构建环境中勾选选项;
构建步骤可以添加shell脚本,或者其他一些操作;
构建步骤最后勾选 Build/Publish Docker Image,选择刚才添加好的Docker云,设置好镜像tag及勾选Push Iamge等参数。
- 远程执行kubectl,更新service等
增加构建后步骤->Send build artifacts over SSH,
配置相关shell command执行更新操作,如kubectl apply -f xxx.yml
- 向gitlab报告pipeline状态
增加构建后步骤->Publish build status to Gitlab
至此, 当git push到指定分支时,便能在gitlab的CI/CD->流水线页面下查询当前的集成构建状态。
····································
欢迎关注课程:
仿百度云盘Go实战 从0到1实现企业级分布式“云存储”系统(服务端)
共同学习,写下你的评论
评论加载中...
作者其他优质文章