Jenkins配置agent


一. 通信協議

為了master和agent能夠正常通信,連接的建立必須是雙向的。

  • SSH: master通過標准的SSH協議連接slave。
  • Java Web Start: Java 應用在agent 主機上啟動,Master和agent通過TCP建立連接。 這種方法往往是在agnet在防火牆內部,master不能發起連接的情況下使用。
  • Windows service: 這種方法是注冊 agnet在遠端主機上作為一個服務。該方法設置比較繁瑣,且需要圖形接口的支持。


二. 設置 agent

關聯slaves到master的不同方式:

  • 靜態和動態對比:靜態添加slave比較簡單。但缺點就是假如需要更多或者更少的slave nodes的話,我們還需要手工修改。一個最好的方式就是動態的添加。
  • 指定和通用目的:就是對某個agent去做某些特定的功能或者一個agent可以構建所有的任務。


三. 常 用的四種配置方法

  • Permanent agents
  • Permanent Docker agents
  • Jenkins Swarm agents
  • Dynamically provisioned Docker agents


1. permanent agents

依次點擊【Manage Jenkins】--【Manage Nodes】—【New Node】,如下圖

T8QVF`EYBY9@[MOCKWRY(D2

持久agent的缺點就是需要針對不同項目類型維護多個slave 類型。解決方案如下圖所示:


2. Permanent Docker agents

這個解決方案的理想方法是永久的添加常規目的的slaves. 每個slave都有相同的配置。

這種方法就是在構建時在管道中指定需要的docker image.

pipeline {
      agent {
           docker {
                image 'openjdk:8-jdk-alpine'
           }
      }
      ...
}

解決方案如下圖所示:


3. Jenkins Swarm agents

以上的添加在往往需要擴容大量的salve 主機時比較麻煩。Jenkins swarm允許去動態的添加slave(不需要在jenkins master中配置它們)

(1)在Jenkins中安裝【Self-Organizing Swarm Plug-in Modules】插件

image


(2)運行Jenkins Swarm slave應用在要扮演Jenkins slave的所有主機上。 使用swarm-client.jar應用。下載地址:https://wiki.jenkins-ci.org/display/JENKINS/Swarm+Plugin.

$ java -jar swarm-client.jar -master <jenkins_master_url> -username <jenkins_master_user> -password <jenkins_master_password> -name jenkins-swarm-slave-1


(3)在成功運行命令后,應該出現如下圖所示:


4. 通過Docker agent動態的提供。

其它的辦法就是在每次構建開始時,jenkins去動態的創建一個新的agent.根據構建工作的數量動態的調整slave的數量。

配置步驟:

(1)安裝Docker插件

B{EORP}`_~0W0D0${T8OM06

(2)打開【Manage Jenkins】。
(3)點擊【Configure System】鏈接。
(4)點擊添加新的雲,選擇Docker.

image


(5)添加Docker 模板

0(~808(USZ25Y43MRQ8B5J6


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM