前言
关于 rancher 的使用方式大家请参考官网。现在有个问题如果我们需要在每次 ****CI**** 构建结束之后都自动更新 rancher 上的 service 该怎么办?
Rancher 官方有提供一个 API (https://rancher.com/docs/rancher/v1.6/en/api/v2-beta/)通过他我们可以方便的管理 rancher 的各个功能。
当然,本作者也写了一个小工具来更新 service
https://github.com/Indexyz/rancher-webhook-update
如何使用
现在就适配了在 gitlab 的 CI 构建完成之后来更新 service。
为什么选择 gitlab ?
原因有两个
-
GitLab 提供免费的 Registry 可以在每次构建成功之后直接从他的 Registery 中拉下映像
-
GitLab 支持免费私有 Repo
简单来说就是因为穷
安装
修改 config.py 中的内容为你的配置文件
当然这些配置项都是可以通过环境变量来设置的
这样可以方便我们直接在 Docker 中跑起来项目 或者是在 Heroku 上托管
运行
直接 gunicorn main:app --log-file=- 然后就运行了一个在 :8080 上的服务器。
配置
在 GitLab 的 Settings > Integrations 添加 Webhook
通过 random.org (https://www.random.org/)来生成高强度的 Secret Token
我们在下面的多选框中选中 Pipeline events 并且输入我们的 updater 的地址。
地址 的格式为:
http(s)://url-of-updater/webhook/gitlab/{prject-id}/{service-id}
然后 在每次构建成功的时候就会自带推送了!
转载
感谢作者:Indexyz
原文链接:https://blog.indexyz.me/2018/02/03/automatic-deploy-rancher/
公告通知
自动化运维班、架构师班、区块链正在招生中
各位小伙伴们,欢迎试听和咨询:
扫码添加小助手微信,备注"公开课,来源简书",进入分享群
网友评论