Jenkins是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重複的工做,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能html
選擇Gitlab做爲git server。Gitlab的功能和Github差很少,可是是開源的,能夠用來搭建私有git server,也提供很是強大的web GUI,好比開發者互相review源代碼的時候就會很方便。java
系統的工做流程大概分爲如下幾步:linux
1> 開發者將新版本push到git server (Gitlab)。git
2> Gitlab隨後觸發jenkins master結點進行一次build。(經過web hook或者定時檢測)web
3> jenkins master結點將這個build任務分配給若干個註冊的slave結點中的一個,這個slave結點根據一個事先設置好的腳本進行build。這個腳本能夠作的事情不少,好比編譯,測試,生成測試報告等等。這些本來須要手動完成的任務均可以交給jenkins來作。windows
4> 咱們在build中要進行編譯,這裏使用了分佈式編譯器distcc來加快編譯速度。服務器
一、環境介紹併發
jenkins 版本:2.204.1ssh
jenkins master部署與window7,slave節點爲linux分佈式
二、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節點應該就顯示在線:
三、遇到問題及解決方法
參考連接:
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
遇到的坑還的本身填本身多總結多回顧、、、、