這篇文章主要講解了“如何通過(guò)Rancher的webhook微服務(wù)來(lái)實(shí)現(xiàn)CI/CD的聯(lián)動(dòng)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“如何通過(guò)Rancher的webhook微服務(wù)來(lái)實(shí)現(xiàn)CI/CD的聯(lián)動(dòng)”吧!
十年的天津網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整天津建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“天津網(wǎng)站設(shè)計(jì)”,“天津網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
Rancher webhook的服務(wù)流程大致如下:
router根據(jù)用戶提交過(guò)來(lái)的method和url初始化對(duì)應(yīng)的handler。
handler解析請(qǐng)求參數(shù)里面的key和projectid初始化對(duì)應(yīng)的webhook driver。
driver調(diào)用升級(jí)接口,返回并相應(yīng)觸發(fā)webhook的請(qǐng)求。
Mac,Windows,Linux,Docker Cloud,AWS,Azure均可部署。
本次準(zhǔn)備的平臺(tái)是Ubuntu發(fā)行版(14.04),為了兼容docker,選擇linux發(fā)行版的時(shí)候內(nèi)核需控制在3.10以上。
根據(jù)用戶選擇的平臺(tái)安裝docker引擎,安裝指導(dǎo)可參考https://docs.docker.com官方文檔,搭配Rancher使用,docker引擎版本最優(yōu)選擇1.12.6或者1.13.1。
本次準(zhǔn)備的docker引擎版本是1.12.6。
示例應(yīng)用基于NGX官方鏡像build,修改了NGX welcome頁(yè)面信息
推送NGX應(yīng)用鏡像到指定的遠(yuǎn)程鏡像倉(cāng)庫(kù)
通過(guò)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'
打開(kāi)瀏覽器,訪問(wèn)NGX服務(wù),確認(rèn)應(yīng)用的內(nèi)容。
進(jìn)入webhook創(chuàng)建頁(yè)面,通過(guò)UI為Dev,Beta,Prod 環(huán)境創(chuàng)建service upgrade webhook。
(注意設(shè)置好對(duì)應(yīng)的鏡像TAG和服務(wù)標(biāo)簽)
更新NGX應(yīng)用、構(gòu)建鏡像,并推送到遠(yuǎn)程倉(cāng)庫(kù)。
觸發(fā)upgrade webhoook,實(shí)現(xiàn)服務(wù)自動(dòng)升級(jí)。
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-
打開(kāi)瀏覽器,訪問(wèn)NGX服務(wù),驗(yàn)證服務(wù)升級(jí)內(nèi)容是否正常。
感謝各位的閱讀,以上就是“如何通過(guò)Rancher的webhook微服務(wù)來(lái)實(shí)現(xiàn)CI/CD的聯(lián)動(dòng)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)如何通過(guò)Rancher的webhook微服務(wù)來(lái)實(shí)現(xiàn)CI/CD的聯(lián)動(dòng)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!