1、概述linux
一、自動化部署能簡化開發過程的代碼管理,讓開發人員把更多的時間專一於業務實現, 簡化繁瑣的上線流程和操做步驟,作到項目的快速打包和部署,減小人爲操做中的失誤。 二、分佈式任務調度平臺,XXL-JOB:美團點評員工許雪裏開發, 其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。 現已開放源代碼並接入多家公司線上產品線,開箱即用。 源碼地址:https://github.com/xuxueli/xxl-job
2、本文簡介git
主要是利用成熟的CI部署工具Jenkins,結合開源的分佈式任務調度框架xxl-job做爲demo工程,快速搭建本身的持續集成項目,其餘項目能夠相似構建。
3、Jenkins部署和配置github
一、安裝 1.1用特定版本的安裝包安裝 安裝包下載頁: https://pkg.jenkins.io/redhat-stable/ (注意:會有一些安裝版本和jdk版本匹配的問題,通常CentOS 6.5 安裝版本jenkins-2.7.4-1.1.noarch.rpm是OK的) 1.二、安裝最新版本: 按照文檔來就沒問題: https://jenkins.io/doc/book/getting-started/installing/#unix-linux 1.三、啓動和中止 sudo service jenkins start/stop/restart sudo chkconfig jenkins on
二、全局配置tomcat
2.1 全局配置:點擊系統管理,進入Global Tool Configuration安全
2.2 配置經常使用環境變量
注意的點:全部配置須要配置在全局環境變量裏面,讓系統全部用戶都能訪問到,好比說maven,不能配置在特定的用戶目錄下,不然後面jenkins用戶就沒法執行mvn命令,而報錯。
jdk:服務器
git:多線程
maven:框架
三、 項目配置ssh
3.一、新建一個項目maven
點擊新建,新建一個自由風格的軟件項目
3.二、項目源碼配置(使用git管理):
首先須要安裝插件: 系統管理-》管理插件,在可選插件裏找到這個,讓後直接安裝就能夠
3.三、配置遠程SSH
在系統管理-》系統設置裏,找到Publish over SSH
四、構建配置詳細:
一、 General配置項目名稱和簡介 二、源碼管理配置git項目地址 三、構建觸發器配置遠程構建腳本 四、構建環境配置項目構建前須要執行的一些腳本 五、構建,配置構建工具,好比maven打包,war包的上傳,執行tomcat服務啓動腳本 六、構建後操做發佈,構建後的郵件發送等操做
4.一、簡介和配置
4.二、 配置項目源碼地址和訪問密碼
4.三、 配置Credentials
4.四、構建環境
4.五、構建 配置構建命令 (這裏的maven是前面全局環境變量中配置好的)
添加構建後操做(須要前面安裝好遠程ssh插件才行)
4.六、配置構建後操做
其中:
Transfer SetSource files:表示要上傳的本地的war包及路徑,可到工做空間去看 Remove prefix:表示要上傳時要去除的文件夾,即只上傳war包 remote driectory:即表示執行時的路徑,至關於把war包上傳到這裏了 exec commad:要執行的命令,這裏能夠重命名jar包,啓動tomcat服務器
七、構建後操做:
八、回到配置主頁,進行構建
九、進入構建控制檯查看構建日誌,若是有錯誤,能夠直接查看到
4、xxl-job的介紹
項目地址: https://github.com/xuxueli/xxl-job 概述: XXL-JOB是一個輕量級分佈式任務調度框架,其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。 現已開放源代碼並接入多家公司線上產品線,開箱即用。 特性: - 一、簡單:支持經過Web頁面對任務進行CRUD操做,操做簡單,一分鐘上手; - 二、動態:支持動態修改任務狀態、暫停/恢復任務,以及終止運行中任務,即時生效; - 三、調度中心HA(中心式):調度採用中心式設計,「調度中心」基於集羣Quartz實現,可保證調度中心HA; - 四、執行器HA(分佈式):任務分佈式執行,任務"執行器"支持集羣部署,可保證任務執行HA; - 五、任務Failover:執行器集羣部署時,任務路由策略選擇"故障轉移"狀況下調度失敗時將會平滑切換執行器進行Failover; - 六、一致性:「調度中心」經過DB鎖保證集羣分佈式調度的一致性, 一次任務調度只會觸發一次執行; - 七、自定義任務參數:支持在線配置調度任務入參,即時生效; - 八、調度線程池:調度系統多線程觸發調度運行,確保調度精確執行,不被堵塞; - 九、彈性擴容縮容:一旦有新執行器機器上線或者下線,下次調度時將會從新分配任務; - 十、郵件報警:任務失敗時支持郵件報警,支持配置多郵件地址羣發報警郵件; - 十一、狀態監控:支持實時監控任務進度; - 十二、Rolling執行日誌:支持在線查看調度結果,而且支持以Rolling方式實時查看執行器輸出的完整的執行日誌; - 1三、GLUE:提供Web IDE,支持在線開發任務邏輯代碼,動態發佈,實時編譯生效,省略部署上線的過程。支持30個版本的歷史版本回溯。 - 1四、數據加密:調度中心和執行器之間的通信進行數據加密,提高調度信息安全性; - 1五、任務依賴:支持配置子任務依賴,當父任務執行結束且執行成功後將會主動觸發一次子任務的執行, 多個子任務用逗號分隔; - 1六、推送maven中央倉庫: 將會把最新穩定版推送到maven中央倉庫, 方便用戶接入和使用; - 1七、任務註冊: 執行器會週期性自動註冊任務, 調度中心將會自動發現註冊的任務並觸發執行。同時,也支持手動錄入執行器地址; - 1八、路由策略:執行器集羣部署時提供豐富的路由策略,包括:第一個、最後一個、輪詢、隨機、一致性HASH、最不常用、最近最久未使用、故障轉移; - 1九、運行報表:支持實時查看運行數據,如任務數量、調度次數、執行器數量等;以及調度報表,如調度日期分佈圖,調度成功分佈圖等; - 20、腳本任務:支持以GLUE模式開發和運行腳本任務,包括Shell、Python等類型腳本; - 2一、阻塞處理策略:調度過於密集執行器來不及處理時的處理策略,策略包括:單機串行(默認)、丟棄後續調度、覆蓋以前調度; - 2二、失敗處理策略;調度失敗時的處理策略,策略包括:失敗告警(默認)、失敗重試;