gitlab,jekins, rancher自动化部署
gitlab 关联jekins实现自动打包
- step1:
进入 jekins配置页面->BuildTriggers
勾选Build when a change is pushed to GitLab. Gitlab CI service URL: http://xxxxx/jenkins/project/xxxx
点击advance按钮,在展开的页面中点击Generate按钮,将生成的secret token保存记录下来
- step2:
进入到gitlab指定仓库目录下面,依次进入setting->Integrations
在页面中输入相关jekins的信息主要包括:URL和secret token(可以从step1的操作中获取到),确认信息之后,点击Add webhook按钮,一个webhook即可添加成功,可以点击Test按钮来测试是否将gitlab与jekins关联成功,如果关联成功,gitlab的这个仓库有push操作就会触发这个webhook,并关联jekins自动构建
jekins关联rancher实现自动部署
- step3:
进入rancher页面,点击API下拉框中的webhook选项,进行receiver hooks的添加操作,点击添加接收器按钮,填写名称(随意填写),选择类型(扩缩容服务,扩缩容主机,升级服务),我们需要做自动升级操作,这里选择升级服务,选择镜像仓库webhook参数格式,填写镜像标签(对应镜像的版本号),添加选择器标签(需要提前在rancher容器上添加标签,以便用来匹配到需要升级的服务)
- step4:
进入jekins配置页面->Build, 点击Add build step按钮,选择“执行shell/excute shell”,添加一段脚本,用来触发rancher上添加的webhook
注:这里添加的脚本本质上就是发送一个post请求,请求地址可以从step3中创建的webhook获取,请求脚本示例:
curl -X POST -H "Content-Type: application/json" -d '{
"push_data":{"tag":"2.4.1"},
"repository":{"repo_name":"registry.xxx.com/xxxxxxxxxx"}
}' "http://xxxxxxxxxxxxx"
说明:(这里可以在postman中发送请求测试,成功之后可以从postman中直接复制curl脚本)
请求参数中的tag为rancher上创建的webhook中的镜像标签
请求参数中的repo_name为docker镜像名称
最后的地址为webhook触发地址