jenkins的Master-slave分佈式架構主要是爲了解決jenkins單點構建任務多、負載較高、性能不足的場景。java
Master/Slave至關於Server和agent的概念。Master提供web接口讓用戶來管理job和slave,job能夠運行在master本機或者被分配到slave上運行構建。一個master(jenkins服務所在機器)能夠關聯多個slave用來爲不一樣的job或相同的job的不一樣配置來服務。web
前提:slave所在服務器必須有java環境服務器
jenkins web端進行操做:架構
系統管理->管理節點->新建節點oracle
1)進行基礎配置,配置選項中的內容是可變的,根據狀況來分佈式
注意這裏須要配置憑據,也就是配置slave所在服務器用戶和密碼性能
以後保存,若是無誤的話就會直接啓動了,如圖下所示是有問題的spa
經過看輸出日誌,咱們發現是jdk的問題,通常來講,其會判斷slave所在服務器有沒有jdk,若是有的話其就會進行檢測(其本身回去幾個路徑下進行檢查),以下圖所示,就是沒有檢查到(由於jdk是咱們本身裝的,路徑並非默認的路徑)。3d
沒有檢查到的話其就會去oracle官網下載,來爲slave所在服務器進行安裝,可是由於中國的緣由,被牆了,因此也會下載失敗,最終就致使完全失敗了,失敗如圖下:日誌
有兩種方法解決:推薦方法1:
方法1:
在配置時高級的選項裏指定java路徑:以下圖所示:
方法2:
爲java路徑作一個軟連接,保證jenkins能夠檢測到java。
[root@web ~]# ln -s /usr/local/jdk1.8/bin/java /usr/bin/java [root@web ~]# ll /usr/bin/java lrwxrwxrwx 1 root root 26 Jul 25 17:33 /usr/bin/java -> /usr/local/jdk1.8/bin/java
以後在看已經成功了!!!!!
而且咱們也能夠在slave所在服務器看到:
jar包就是負責接收master任務的。
在項目job中進行配置:
可經過標籤或者名稱進行匹配(標籤可在安裝時配置)
咱們能夠發現控制檯的日誌,其也是slave構建的
以後查看構建完的工做目錄,也有咱們預想中的文件。
這樣基本上就實現了藉助jenkins的slave去構建job了。
目前咱們是在slave構建也在slave上部署,以後咱們能夠經過腳本,好比藉助rsync、ansible等部署在其餘服務器上。
咱們也能夠爲咱們的slave服務器在配置時候加上標籤,這樣也會方便咱們選擇,用法也不僅僅侷限在一臺服務器上,可讓多臺slave去競選。