面對愈來愈多的微服務,愈來愈頻繁的版本發佈,上週末在家倒騰了jenkins+docker的持續集成和持續交付。git
==實現了push tag 到git服務器後坐等新版本發佈的郵件通知==,她會自動觸發工程構建和版本發佈,那叫一個爽歪歪啊省心、省力。github
下面來和你們的一塊兒分享一下個人實踐過程。web
持續集成, 簡稱CI(continuous integration).docker
Jenkins數據庫
Jenkins 是一個用Java編寫的開源的持續集成工具,提供了軟件開發的持續集成服務,可監控並觸發持續重複的工做,具備開源,支持多平臺和插件擴展,安裝簡單,界面化管理等特色。vim
附網上jenkins持續交付流程圖 瀏覽器
持續集成,持續交付各個階段所使用的一些典型工具的使用,以及在各個階段中的相關團隊的相關活動,如下圖爲典型的DevOps相關的活動安全
請先安裝好docker 配置好docker加速(你懂的!),沒有玩過的同窗請先百度。bash
docker 安裝jenkins很是方便執行下面的腳本就OK了服務器
docker run --name devops-jenkins --user=root -p 8080:8080 -p 50000:50000 -v /opt/data/jenkins_home:/var/jenkins_home -d jenkins/jenkins:lts
複製代碼
須要更多定製參數你能夠參考 https://github.com/jenkinsci/docker
docker run --name devops-registry -p 5000:5000 -v /opt/devdata/registry:/var/lib/registry -d registry
複製代碼
啓動完jenkins後經過瀏覽器輸入地址http://部署jenkins主機IP:端口
docker logs devops-jenkins
複製代碼
查看這個password 如:
選擇安裝插件方式,這裏我是默認第一個
進入插件安裝界面,連網等待插件安裝
安裝完插件後,進入建立管理員界面
輸入完管理員帳號後,點擊continue as admin 進入管理界面點擊系統管理-插件管理中安裝docker構建插件和角色管理插件
安裝docker構建插件,在可選插件中查找docker build step plugin
安裝角色管理插件,在可選插件中查找Role-based Authorization Strategy
安裝SSH插件,用於構建成功後執行遠端服務器腳本從docker本地倉庫獲取鏡像後發佈新版本
安裝 Email Extension Plugin 插件,配置自動發送郵件
點擊系統管理->Global Tool Configuration->找到jdk點擊新增按鈕(自動安裝請先到Oracle註冊帳號)
點擊系統管理->系統設置 配置SSH
配置docker
設置docker主機能夠被遠程訪問
vim /usr/lib/systemd/system/docker.service
在ExecStart=/usr/bin/docker daemon 後追加 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
如:
ExecStart=/usr/bin/docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
複製代碼
配置郵件
選擇系統管理->管理用戶:新建幾個管理員用戶如:dmpadmin、tscadmin
選擇系統管理->Manage and Assign Roles->Assign Relos:把第三步的用戶加到user/group中並授於對應的角色權限 如:
如http://admin:dsfadfadsfaf@192.168.1.1:8080/generic-webhook-trigger/invoke
一、maven 構建項目 二、構建docker鏡像 三、推送docker鏡像
見證奇蹟的時候到了
點擊當即構建
構建成功後自動發送了成功郵件