結合你們CI/CD的應用場景,本篇Blog旨在介紹如何經過Rancher的webhook微服務來實現CI/CD的聯動。linux
本次實踐的主要流程以下:nginx
Rancher webhook的服務流程大體以下:web
Mac,Windows,Linux,Docker Cloud,AWS,Azure都可部署。docker
本次準備的平臺是Ubuntu發行版(14.04),爲了兼容docker,選擇linux發行版的時候內核需控制在3.10以上。json
示例應用基於NGX官方鏡像build,修改了NGX welcome頁面信息瀏覽器
推送NGX應用鏡像到指定的遠程鏡像倉庫app
經過API建立webapp stack,NGX service,命令行以下curl
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服務,確認應用的內容。webapp
進入webhook建立頁面,經過UI爲Dev,Beta,Prod 環境建立service upgrade webhook。tcp
(注意設置好對應的鏡像TAG和服務標籤)
更新NGX應用、構建鏡像,並推送到遠程倉庫。
觸發upgrade webhoook,實現服務自動升級。
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服務,驗證服務升級內容是否正常。
循環3.7&3.8的步驟,完成並驗證測試環境和線上環境的持續部署。
9月27日,北京海航萬豪酒店,容器技術大會Container Day 2017即將舉行。
CloudStack之父、海航科技技術總監、華爲PaaS部門部長、恆豐銀行科技部總經理、阿里雲PaaS工程總監、民生保險CIO······均已加入豪華講師套餐!
11家已容器落地企業,15位真·雲計算大咖,13場純·技術演講,結合實戰場景,聚焦落地經驗。免費參會+超高規格,詳細議程及註冊連接請戳