摘要:應(yīng)用鏡像示例應(yīng)用基于官方鏡像,修改了頁(yè)面信息應(yīng)用鏡像推送應(yīng)用鏡像到指定的遠(yuǎn)程鏡像倉(cāng)庫(kù)創(chuàng)建通過(guò)創(chuàng)建,,命令行如下驗(yàn)證服務(wù)打開瀏覽器,訪問(wèn)服務(wù),確認(rèn)應(yīng)用的內(nèi)容。驗(yàn)證更新打開瀏覽器,訪問(wèn)服務(wù),驗(yàn)證服務(wù)升級(jí)內(nèi)容是否正常。
概述
結(jié)合大家CI/CD的應(yīng)用場(chǎng)景,本篇Blog旨在介紹如何通過(guò)Rancher的webhook微服務(wù)來(lái)實(shí)現(xiàn)CI/CD的聯(lián)動(dòng)。
流程介紹本次實(shí)踐的主要流程如下:
CI/CD console從代碼托管、配置中心、第三方依賴平臺(tái)拉取應(yīng)用相應(yīng)的代碼,配置、依賴、并構(gòu)建應(yīng)用鏡像。
將構(gòu)建好的應(yīng)用鏡像推送到鏡像倉(cāng)庫(kù)。
通過(guò)Rancher Server暴露出來(lái)的API/UI/CLI創(chuàng)建并啟動(dòng)應(yīng)用棧。
在Rancher Server上創(chuàng)建upgrade類型的webhook。
更新應(yīng)用、重新構(gòu)建應(yīng)用鏡像,同時(shí)推送到鏡像倉(cāng)庫(kù)。
觸發(fā)Dev環(huán)境的webhook,完成Dev環(huán)境的服務(wù)升級(jí)。
Dev環(huán)境驗(yàn)證升級(jí)是否成功,應(yīng)用是否正常。
觸發(fā)Beta環(huán)境的webhook,完成Beta環(huán)境的服務(wù)升級(jí)。
Beta環(huán)境驗(yàn)證升級(jí)是否成功,應(yīng)用是否正常。
出發(fā)Prod環(huán)境的webhook,完成Prod環(huán)境的服務(wù)升級(jí)。
Prod環(huán)境驗(yàn)證升級(jí)是否成功,應(yīng)用是否正常。
webhook介紹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)求。
環(huán)境準(zhǔn)備 PlatformMac,Windows,Linux,Docker Cloud,AWS,Azure均可部署。
本次準(zhǔn)備的平臺(tái)是Ubuntu發(fā)行版(14.04),為了兼容docker,選擇linux發(fā)行版的時(shí)候內(nèi)核需控制在3.10以上。
Docker根據(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。
Rancher CI/CD Build應(yīng)用鏡像示例應(yīng)用基于NGX官方鏡像build,修改了NGX welcome頁(yè)面信息
Push應(yīng)用鏡像推送NGX應(yīng)用鏡像到指定的遠(yuǎn)程鏡像倉(cāng)庫(kù)
創(chuàng)建Stack&Service通過(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" services: NGX: image: anzersy/nginx:20170801 stdin_open: true tty: true cpuset: "0" ports: - 8787:80/tcp cpu_shares: 1024 labels: io.rancher.container.pull_image: always servicename: nginx", "rancherCompose": "version: "2" services: NGX: scale: 1 start_on_create: true", "binding": null, "startOnCreate": true }" "http://a.b.c.d:e/v2-beta/projects/1a107/stacks"驗(yàn)證服務(wù)
打開瀏覽器,訪問(wèn)NGX服務(wù),確認(rèn)應(yīng)用的內(nèi)容。
創(chuàng)建webhook進(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)簽)
更新并push應(yīng)用鏡像更新NGX應(yīng)用、構(gòu)建鏡像,并推送到遠(yuǎn)程倉(cāng)庫(kù)。
觸發(fā)upgrade webhook觸發(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-驗(yàn)證更新
打開瀏覽器,訪問(wèn)NGX服務(wù),驗(yàn)證服務(wù)升級(jí)內(nèi)容是否正常。
循環(huán)3.7&3.8的步驟,完成并驗(yàn)證測(cè)試環(huán)境和線上環(huán)境的持續(xù)部署。
9月27日,北京海航萬(wàn)豪酒店,容器技術(shù)大會(huì)Container Day 2017即將舉行。
CloudStack之父、海航科技技術(shù)總監(jiān)、華為PaaS部門部長(zhǎng)、恒豐銀行科技部總經(jīng)理、阿里云PaaS工程總監(jiān)、民生保險(xiǎn)CIO······均已加入豪華講師套餐!
11家已容器落地企業(yè),15位真·云計(jì)算大咖,13場(chǎng)純·技術(shù)演講,結(jié)合實(shí)戰(zhàn)場(chǎng)景,聚焦落地經(jīng)驗(yàn)。免費(fèi)參會(huì)+超高規(guī)格,詳細(xì)議程及注冊(cè)鏈接請(qǐng)戳
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27004.html
摘要:持續(xù)集成,持續(xù)交付當(dāng)然也有叫通常會(huì)采用一些軟件如等來(lái)輔助我們。這時(shí)可以通過(guò)倉(cāng)庫(kù)自帶的來(lái)觸發(fā)。這里的最好是可以支持,關(guān)于,大家可以理解為類似的功能。關(guān)于如何取出服務(wù)地址并自動(dòng)添加記錄的原理,可以參考我之前的一篇文章文中第三部分有詳細(xì)描述。 CI(Continuous Integration)持續(xù)集成,CD(Continuous Delivery) 持續(xù)交付(當(dāng)然也有叫 Continuou...
摘要:來(lái)自硅谷的企業(yè)級(jí)容器管理平臺(tái)提供商今日正式發(fā)布與企業(yè)級(jí)容器管理平臺(tái)集成的,極簡(jiǎn)的操作體驗(yàn),強(qiáng)大的功能整合,完全開源,助力在企業(yè)的真正落地使用。 來(lái)自硅谷的企業(yè)級(jí)容器管理平臺(tái)提供商Rancher Labs今日正式發(fā)布與Rancher企業(yè)級(jí)容器管理平臺(tái)集成的Rancher Pipeline,極簡(jiǎn)的操作體驗(yàn),強(qiáng)大的功能整合,完全開源,助力CI/CD在企業(yè)的真正落地使用。 云計(jì)算技術(shù)的廣泛采用...
摘要:在貓屎氤氳的霧氣里角仰望天花板,手機(jī)微信提醒這次構(gòu)建成功或失敗,并附帶污言穢語(yǔ)。這時(shí)他可以開始往工位走,坐下時(shí),微信又會(huì)提醒本次部署到成功或失敗。與企業(yè)微信的集成在決定使用之前,需要知道的是,是一個(gè)高度依賴社區(qū)的項(xiàng)目。 前言 相信我,一切事情的發(fā)生都是趕鴨子上架,沒(méi)有例外。人類所有偉大的變革都是迫不得已,可又是那么順其自然。比如容器(docker)技術(shù)的誕生,比如箭在弦上的創(chuàng)業(yè),比如野...
摘要:本文作者為的架構(gòu)師,他分享了使用和建立超高速流水線的經(jīng)驗(yàn)。月日,北京海航萬(wàn)豪酒店,容器技術(shù)大會(huì)即將舉行。 Higher Education(highereducation.com)是一個(gè)連接學(xué)生與高校的入學(xué)申請(qǐng)平臺(tái),通過(guò)引入高意圖和高質(zhì)量的潛在學(xué)生,以及明確、有效的操作,為網(wǎng)站合作的大學(xué)吸引學(xué)生入學(xué)。每年Higher Education為其大學(xué)合作伙伴招收超過(guò)15000名在線學(xué)生入學(xué)申...
摘要:主機(jī)端口非常昂貴,因此稍后我們會(huì)使用一個(gè)負(fù)載均衡器。注冊(cè)完成后,將的配置添加到負(fù)載均衡器上。部署負(fù)載均衡器在棧中,單擊添加服務(wù)旁邊的下拉菜單,然后選擇添加負(fù)載均衡器。如果你收到狀態(tài)或的錯(cuò)誤報(bào)告,那么需要檢查負(fù)載均衡器配置,確認(rèn)設(shè)置無(wú)誤。 介紹 GitLab核心是集成管理Git存儲(chǔ)庫(kù)的工具。比如你希望創(chuàng)建一個(gè)提供服務(wù)的平臺(tái),那么GitLab將提供強(qiáng)大的身份驗(yàn)證和授權(quán)機(jī)制、工作組、問(wèn)題跟蹤...
閱讀 2798·2021-11-04 16:15
閱讀 3476·2021-09-29 09:35
閱讀 4066·2021-09-22 15:45
閱讀 1426·2019-08-30 15:55
閱讀 1699·2019-08-30 15:44
閱讀 2737·2019-08-29 12:56
閱讀 2708·2019-08-26 13:30
閱讀 2183·2019-08-23 17:00