一、jenkins分布式簡單介紹
Jenkins是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重復的工作,旨在提供一個開放易用的軟件平台,使軟件的持續集成變成可能
二、jenkins工作原理
選擇Gitlab作為git server。Gitlab的功能和Github差不多,但是是開源的,可以用來搭建私有git server,也提供非常強大的web GUI,比如開發者互相review源代碼的時候就會很方便。
系統的工作流程大概分為以下幾步:
1> 開發者將新版本push到git server (Gitlab)。
2> Gitlab隨后觸發jenkins master結點進行一次build。(通過web hook或者定時檢測)
3> jenkins master結點將這個build任務分配給若干個注冊的slave結點中的一個,這個slave結點根據一個事先設置好的腳本進行build。這個腳本可以做的事情很多,比如編譯,測試,生成測試報告等等。這些原本需要手動完成的任務都可以交給jenkins來做。
4> 我們在build中要進行編譯,這里使用了分布式編譯器distcc來加快編譯速度。
三、jenkins 主從配置
1、環境介紹
jenkins 版本:2.204.1
jenkins master部署與window7,slave節點為linux
2、jenkins主從配置
Manage Jenkins-》Mange Nodes-》
新建節點
節點名稱:隨便寫,為了快速區分可以master或slave+響應IP區分開
配置節點:
名稱:定義slave的唯一名稱標識,可以是任意字符串,通常設置為slave主機名、ip地址
描述:關於slave的描述,通常用於描述與其它salve的區別
可執行器數量:這個值控制着Jenkins並發構建的數量. 因此這個值會影響Jenkins系統的負載壓力. 使用處理器個數作為其值會是比較好的選擇。
增大這個值會使每個構建的運行時間更長,但是這能夠增大整體的構建數量,因為當一個項目在等待I/O時它允許CPU去構建另一個項目。
設置這個值為0對於從Jenkins移除一個失效的從節點非常有用,並且不會丟失配置信息
遠程工作目錄:
指定slave的工作目錄路徑(提前在slave節點建好路徑)。最好設置為絕對路徑,如“/var/jenkins”或“c:\jenkins”。這里填寫的是相對於slave主機的路徑,正常情況下,不必對master主機可見
用法:
盡可能的使用這個節點:
這是默認和常用的設置. 在這種模式下,Jenkins會盡可能的使用這個節點.任何時候如果一個構建能使用這個節點構建,那么Jenkins就會使用它.
只允許運行綁定到這台機器的Job
Jenkins只會構建哪些分配到這台機器的Job. 這允許一個節點專門保留給某種類型的Job.例如,在Jenkins上連續的執行測試,你可以設置執行者數量為1,那么同一時間就只會有一個構建, 一個實行者不會阻止其它構建,其它構建會在另外的節點運行.個
啟用方式:
launch agent agents via ssh:通過ssh啟動代理
launch agent by connecting it to the master:啟動代理程序,將其連接到主服務器
launch agent via execution of command on the master:通過執行主機上的命令來啟動代理
let jenkins control this windows agent as a windows service:讓jenkins作為一個windows服務來控制這個windows代理
保存節點后,顯示如下:
點擊launch下載slave-agent.jnlp和agent.jar包,並上傳slave節點服務器且啟動
執行命令須從上復制:java -jar agent.jar -jnlpUrl http://XXX.XXX.XXX.XXX:8080/computer/XXX/slave-agent.jnlp -secret 19b1c0348b0312ffa16e5eca13dc9eb28258f2f8701ce94e90f33b4846312b5e -workDir "/data/jenkins" &
設置后台運行,如果顯示出現connected 表示slave啟動成功,如下
此刻新建slave節點應該就顯示在線:
3、遇到問題及解決方法
參考鏈接:
https://www.cnblogs.com/lxs1314/p/7551309.html
https://www.cnblogs.com/majestyking/p/10421492.html
https://www.cnblogs.com/zndxall/p/8297356.html
https://cloud.tencent.com/developer/article/1087020
遇到的坑還的自己填自己多總結多回顧、、、、