共計 1806 個字符,預計需要花費 5 分鐘才能閱讀完成。
這篇文章主要講解了“如何通過 Rancher 的 webhook 微服務來實現(xiàn) CI/CD 的聯(lián)動”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“如何通過 Rancher 的 webhook 微服務來實現(xiàn) CI/CD 的聯(lián)動”吧!
webhook 介紹
Rancher webhook 的服務流程大致如下:
router 根據(jù)用戶提交過來的 method 和 url 初始化對應的 handler。
handler 解析請求參數(shù)里面的 key 和 projectid 初始化對應的 webhook driver。
driver 調用升級接口,返回并相應觸發(fā) webhook 的請求。
環(huán)境準備 Platform
Mac,Windows,Linux,Docker Cloud,AWS,Azure 均可部署。
本次準備的平臺是 Ubuntu 發(fā)行版 (14.04),為了兼容 docker,選擇 linux 發(fā)行版的時候內核需控制在 3.10 以上。
Docker
根據(jù)用戶選擇的平臺安裝 docker 引擎,安裝指導可參考 https://docs.docker.com 官方文檔,搭配 Rancher 使用,docker 引擎版本最優(yōu)選擇 1.12.6 或者 1.13.1。
本次準備的 docker 引擎版本是 1.12.6。
Rancher
CI/CDBuild 應用鏡像
示例應用基于 NGX 官方鏡像 build,修改了 NGX welcome 頁面信息
Push 應用鏡像
推送 NGX 應用鏡像到指定的遠程鏡像倉庫
創(chuàng)建 Stack Service
通過 API 創(chuàng)建 webapp stack,NGX service,命令行如下
curl -u xxx:xxx \
-X POST \
-H Accept: application/json \
-H Content-Type: application/json \
-d {
description : validate the upgrade service using webhook ,
name : webapp ,
system : false,
dockerCompose : version: 2 \nservices:\n NGX:\n image: anzersy/nginx:20170801\n stdin_open: true\n tty: true\n cpuset: \ 0\ \n ports:\n - 8787:80/tcp\n cpu_shares: 1024\n labels:\n io.rancher.container.pull_image: always\n servicename: nginx ,
rancherCompose : version: 2 \nservices:\n NGX:\n scale: 1\n start_on_create: true ,
binding : null,
startOnCreate : true
} http://a.b.c.d:e/v2-beta/projects/1a107/stacks
驗證服務
打開瀏覽器,訪問 NGX 服務,確認應用的內容。
創(chuàng)建 webhook
進入 webhook 創(chuàng)建頁面,通過 UI 為 Dev,Beta,Prod 環(huán)境創(chuàng)建 service upgrade webhook。
(注意設置好對應的鏡像 TAG 和服務標簽)
更新并 push 應用鏡像
更新 NGX 應用、構建鏡像,并推送到遠程倉庫。
觸發(fā) upgrade webhook
觸發(fā) upgrade webhoook,實現(xiàn)服務自動升級。
curl -u xxx:xxx \
-X POST \
-H Accept: application/json \
-H Content-Type: application/json \
-d {
push_data : {
tag : 20170801
},
repository : {
repo_name : anzersy/nginx
}
} http://a.b.c.d:e/v1-
驗證更新
打開瀏覽器,訪問 NGX 服務,驗證服務升級內容是否正常。
感謝各位的閱讀,以上就是“如何通過 Rancher 的 webhook 微服務來實現(xiàn) CI/CD 的聯(lián)動”的內容了,經(jīng)過本文的學習后,相信大家對如何通過 Rancher 的 webhook 微服務來實現(xiàn) CI/CD 的聯(lián)動這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關知識點的文章,歡迎關注!