1. 程式人生 > >Jenkins系列之-—05 節點配置

Jenkins系列之-—05 節點配置

並運行 相同 用法 configure dso exc efi col nes

一、節點配置

1. 進入【系統管理】-【節點管理】-【新建節點】,錄入節點名,選擇Permanent Agent,下一步錄入節點詳細配置信息,如下:

技術分享圖片

  • Name:節點名稱
  • Description:節點描述
  • # of executors:並發構建數(根據機器的性能定,單顆四核cpu建議不要超過5)
  • Remote FS root:節點的根目錄(註意:如果目錄不存在,會自動創建目錄。你必須對該目錄有讀寫權限,不然會報錯:hudson.util.IOException2: Failed to copy xxxx)
  • Labels:標記(又叫做標簽)用來對多節點分組,標記之間用空格分隔.
  • 用法:盡可能的使用這個節點/只允許運行綁定到這臺機器的Job(二選一)
  • Launch method:運行方式有四個選項。建議選擇第1、2種方式配置。詳細如下:
1)   【推薦】Launch slave agents on Unix machines via SSH  
在Unix(包括Linux)機器上通過SSH通道連接節點 (適用於Unix和Linux)

  Host:節點主機的ip地址
  Credentials:憑據(如果為空或者不可選擇,請在系統管理→Manage Credentials中配置。Manage Credentials的配置非常簡單,這裏就不在描述了。Manage Credentials配置完成後,需刷新節點配置頁面才會顯示。)
  Port:端口默認22
  JavaPath:[可選]JDK路徑,默認和master節點相同。路徑必須指定到Java程序,如:/path/bin/java
  JVM Options:[可選]JVM可選參數
  Prefix Start Slave Command:[可選]不知道幹什麽用的參數
  Suffix Start Slave Command:[可選]不知道幹什麽用的參數
  測試可以使用Unix命令,會自動拼接在[SSH] Starting slave process:[Prefix Start Slave Command] cd ‘/path‘ && /path/bin/java -jar slave.jar [Suffix Start Slave Command]

2)   【推薦】Launch slave agents via Java Web Start  
通過Java Web Start連接節點 (適用於所有支持Java程序的系統)

  Tunnel connection through:[可選]在端口轉發這種情況下使用
  JVM options:[可選]JVM可選參數
  這種方法的缺點:如果該節點宕機了,主節點無法自動重啟它。

3)   Launch slave via execution of command on the Master 
通過主節點的控制臺連接節點

  該選項下Launch command的幫助。
  Jenkins的開發者考慮到某些企業可能有N++ 個節點(N>=你猜!)。如果在界面配置,那麽升級版本之類的操作會很麻煩。所以允許你使用shell腳本去配置管理節點(貌似很方便的樣子)。具體的腳本需要你自己寫。
  Launch command:Unix運行腳本的命令,如:sh aaa.sh

4)   【不建議使用】Let Jenkins control this Windows slave as a Windows service  
讓Jenkins節點添加到Windows服務中

   這個選項比Launch slave agents via Java Web Start添加為服務更加穩定(幫助文檔是這麽說的)。采用這種運行方式,那麽這個系統不能登錄任何用戶。這種配置方式是非常的麻煩和折騰。具體請查看 點我去看幫助
  Administrator user name:域\管理員賬號
  Password:密碼
  Host:節點主機IP或者域名
  Run service as:
    Use Local System User:使用本地系統用戶
    Log on using a different account:使用不同的用戶登錄
      User name:賬號
      Password:密碼
    Use Administrator account given above:使用上面的用戶登錄
  Path to java executable:[可選]JDK路徑。必須指定到Java程序,如:C:\Windows\system32\java.exe
  JVM options:[可選]JVM可選參數
  • Availability:

1) Keep this slave on-line as much as possible:盡可能保持節點在線【推薦】

2) Take this slave on-line according to a schedule:根據時間表在線(類似於Linux的定時任務)

  • Startup Schedule:類似於Linux定時任務的時間
  • Scheduled Uptime:超過任務時間後延遲多少分鐘離線。如果此數值大於在線總時間(單位:分),就會一直保持在線【必須為數字】
  • Keep on-line while jobs are running:當有Job在構建時(到達離線時間了)繼續保持在線

3) Take this slave on-line when in demand and off-line when idle:讓Jenkins根據需求自動連接或者離線

  • In demand delay:告訴Jenkins如果有Job需要在此節點構建,需要在任務隊列等待多長時間才會進入任務狀態進行構建【必須為數字】
  • Idle delay:告訴Jenkins多少分鐘內如果沒有Job需要構建就離線【必須為數字】
  • Node Properties:
  1. Environment variables:配置環境變量(可以在腳本中引用,好方便啊\(^o^)/~)
  2. Tool Locations:工具的目錄【推薦】。說明:可以替換系統設置的各種工具目錄。如:JDK目錄、Ant目錄、Maven目錄等。好處就是在不更改Job配置的情況下,不同環境(如:Windows和Linux) Job配置通用。好方便啊\(^o^)/~

【註意】:默認情況下啟動方式只顯示第三種類型。在【系統管理】-【Configure Global Security】中,TCP port for JNLP agents ,禁用換成隨機選取,則顯示第二種

技術分享圖片

二、節點連接

一、通過SSH連接node

此種方式連接時,master和slave必須是能夠通過ssh進行連接的,必須有slave機器的賬號才行,但不要求必須是root賬號。

這種方式的前提是需要安裝SSH Slaves plugin插件。

有如下兩種方式Add Credentials:
1)通過Username with password方式
需要知道slave機器的用戶名和密碼,見下圖:

技術分享圖片

2)通過SSH Username with private key方式

需要先在master機器上生成ssh key pair。生成的 public key放到slave機器 ~/.ssh/authorized_keys裏面。

chmod 600 ~/.ssh/authorized_keys。
然後,添加連接slave的credential,見下圖

技術分享圖片

Username填寫在master上生成key pair時使用的用戶名。

Private key選擇From the jenkins master ~/.ssh

【擴展知識】 
Jenkins的SSH Credentials Plugin插件,可以集中管理這些ssh 的key。安裝完這個插件,可以在Jenkins上看到這樣的頁面 
技術分享圖片

這個頁面可以對credentials進行添加、刪除、修改等操作。在這裏設置的credentials在jenkins的其他需要credentials的地方,可以通過下拉菜單選擇使用,比如添加slave時,可以直接在Credentials下拉菜單裏選擇對應的credential就行:

 
技術分享圖片
還有git clone代碼時: 

技術分享圖片
 
此時一定要把在master上生成的 public key添加到github賬號的的Profile setting頁面裏的SSH Keys Settings中。

2、通過JNLP連接node

將slave主動連接master。

技術分享圖片

有兩種方式啟動:

1.Launch agent from browser on slave 下載文件slave-agent.jnlp文件,雙擊打開。

一般用在Windows系統上,需要javaws.exe(在Java的bin目錄中可以找到)程序才能打開。如果提示錯誤,請卸載JDK後重新安裝。

點擊左上角的File選擇Install as a service就可以添加為Windows的服務了(默認開機自動啟動)。

技術分享圖片

2.Run from slave command line 如果你配置了權限那麽後面還有一串看不懂的隨機Key

下載slave.jar到本地,然後進入存放slave.jar的目錄,復制粘貼並運行 java -jar slave.jar -jnlpUrl http://xxxxx 即可啟動。

slave.jar下載

三、節點使用

在job的配置頁面,勾選Restrict where this project can be run,並且在Label Expression輸入節點的標簽名(一個標簽有可能對應多臺slave節點),也可以輸入slave節點的名稱

技術分享圖片

Jenkins系列之-—05 節點配置