jenkins-node節(jié)點配置方式解讀
簡述
Jenkins有一個很強大的功能: 即:支持分布式構(gòu)建(jenkins配置中叫節(jié)點(node),也被稱為slave)。
分布式構(gòu)建通常是用來吸收額外的負(fù)載。
通過動態(tài)添加額外的機器應(yīng)對構(gòu)建作業(yè)中的高峰期,或在特定操作系統(tǒng)或環(huán)境運行特定的構(gòu)建作業(yè)。
這項功能在大中型企業(yè)(微服務(wù)化)環(huán)境中是很重要的。
關(guān)于jenkins master/slave
分布(master/slave)式構(gòu)建工作模式是:
- master負(fù)責(zé)處理調(diào)度構(gòu)建作業(yè),把構(gòu)建通過定義的策略分發(fā)到slave節(jié)點進(jìn)行執(zhí)行。
- 監(jiān)視slave。
- 并且記錄和發(fā)布構(gòu)建產(chǎn)物(即使在一個分布式架構(gòu)中,master實例也是可以直接執(zhí)行構(gòu)建作業(yè)的),slave構(gòu)建的結(jié)果和產(chǎn)物會同步到master。
master/slave策略:
- jenkins在配置管理slave節(jié)點時,我們可以針對不同的環(huán)境,選擇不同的策略進(jìn)行配置slave節(jié)點。
通常情況下可以通過以下幾種方式:
- master通過ssh啟動slave節(jié)點。
- 直接通過終端登錄slave,命令行方式啟動節(jié)點。
- 支持windows。
一個node的創(chuàng)建, 是很簡單的(原生支持功能)。
- 操作步驟:系統(tǒng)配置-->節(jié)點管理-->新增節(jié)點:

注: 上圖中的jenkins master啟動用戶,需要和slave的root進(jìn)行key 認(rèn)證。
配置簡述:
- 名字: 節(jié)點名稱,建議規(guī)范化
- of executors: jenkins最大構(gòu)建并發(fā)數(shù)。官方建議設(shè)置為cpu核數(shù)相等。
- 標(biāo)簽(labels): 重要,用于對多節(jié)點分組,根據(jù)slave的標(biāo)簽和job的標(biāo)簽進(jìn)行匹配,slave只構(gòu)建特定的標(biāo)簽任務(wù)(如:按項目分(appserver),將slave標(biāo)記為appserver,job也標(biāo)記為appserver,這樣的話你的Job就不會運行在除了appserver節(jié)點以外的其它節(jié)點上了),支持多個,用空格隔開。
用法:
兩種策略(盡可能使用(默認(rèn)),和只運行綁定的job),根據(jù)不同環(huán)境決定.
啟動方法(Launch method):
a). Launch slave agents via SSH:通過SSH通道連接節(jié)點(適用于Linux類系統(tǒng),上圖方式)
b). Launch agent via execution of command on the Master:通過主節(jié)點的控制臺連接節(jié)點(需要寫script)
c). Let Jenkins control this Windows slave as a Windows service:讓Jenkins節(jié)點添加到Windows服務(wù)中(通常不用吧???)
Availability:
a). Keep this slave on-line as much as possible:盡可能保持節(jié)點在線【推薦】
b). Take this slave on-line according to a schedule:根據(jù)時間表在線(類似于Linux的定時任務(wù))
c). Take this slave on-line when in demand and off-line when idle:讓Jenkins根據(jù)需求自動連接或者離線
i). In demand delay:告訴Jenkins如果有Job需要在此節(jié)點構(gòu)建,需要在任務(wù)隊列等待多長時間才會進(jìn)入任務(wù)狀態(tài)進(jìn)行構(gòu)建
ii). Idle delay:告訴Jenkins多少分鐘內(nèi)如果沒有Job需要構(gòu)建就離線
- Environment variables: 環(huán)境變量,構(gòu)建中使用
- Tool Locations: 工具目錄(用于替換系統(tǒng)設(shè)置的,如java版本,maven版本)
啟動后,slave上應(yīng)該有一個進(jìn)程:
# ps -ef|grep jar root 9602 8865 0 16:12 ? 00:00:00 bash -c cd "/home/jenkins_home" && java -jar slave.jar
node也可以作為一個參數(shù)類型,被 “參數(shù)化構(gòu)建過程”進(jìn)行調(diào)用。 需要安裝一個插件:Node and Label parameter plugin
- 安裝后,在創(chuàng)建job時,可選:

- Build with Parameters頁面顯示如下:

可選擇具體node進(jìn)行構(gòu)建。。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring mvc AJAX技術(shù)實現(xiàn)原理解析
這篇文章主要介紹了Spring mvc AJAX技術(shù)實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03
關(guān)于ApplicationContext的三個常用實現(xiàn)類
這篇文章主要介紹了關(guān)于ApplicationContext的三個常用實現(xiàn)類,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
java Class文件結(jié)構(gòu)解析常量池字節(jié)碼
這篇文章主要為大家介紹了java Class文件的整體結(jié)構(gòu)解析常量池字節(jié)碼詳細(xì)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
如何使用MybatisPlus快速進(jìn)行增刪改查詳解
增刪改查在日常開發(fā)中是再正常不多的一個需求了,下面這篇文章主要給大家介紹了關(guān)于如何使用MybatisPlus快速進(jìn)行增刪改查的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
SpringBoot實現(xiàn)RabbitMQ監(jiān)聽消息的四種方式
本文主要介紹了SpringBoot實現(xiàn)RabbitMQ監(jiān)聽消息的四種方式,包括@RabbitListener,MessageListener接口,MessageListenerAdapter適配器,@RabbitHandler這幾種,感興趣的可以了解一下2024-05-05
IntelliJ IDEA同步代碼時版本沖突而產(chǎn)生出的incoming partial文件問題的解決辦法
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA同步代碼時版本沖突而產(chǎn)生出的incoming partial文件問題的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10
Java實現(xiàn)讀取CSV文件并將數(shù)據(jù)放入對象
CSV文件是一種常見的數(shù)據(jù)存儲格式,廣泛應(yīng)用于數(shù)據(jù)交換,日志記錄和表格數(shù)據(jù)處理,在Java開發(fā)中,讀取CSV文件并將數(shù)據(jù)映射到對象中是常見的需求,本文將詳細(xì)介紹幾種常見方法,有需要的可以了解下2025-06-06

