Jenkins-slave分佈式環境搭建

前言

之前搭建過selenium grid的分佈式環境,今天我們再來搭建一次Jenkins的分佈式環境:jenkins-slave

Jenkins的Master-Slave分佈式架構主要是爲了解決Jenkins單點構建任務多、負載較高、性能不足的場景。Master-Slave相當於Server和Agent的概念。Master提供web接口讓用戶

來管理job和Slave,job可以運行在Master本機或者被分配到Slave上運行構建。一個Master(Jenkins服務所在機器)可以關聯多個Slave用來爲不同的job或相同的job的不同配置來

服務,現在我們開始配置Jenkins-slave

配置前準備

爲了模擬真實的Jenkins環境,我採用了兩臺實體電腦,192.168.1.101作爲Jenkins服務器,並已經安裝好了Jenkins和java環境(如何安裝,點擊此處), 192.168.1.103作爲slave機也就是node節點,並安裝好Java環境,同時要保證兩臺機器處於同一個網段,相互能夠ping通,到此爲止前期的環境準備就已經完成了

新建節點

登錄Jenkins服務器-點擊Jenkins配置-選擇Manage Nodes(節點配置)-點擊New Node(新建節點)-點擊ok

配置節點

注意:如果你沒有配置過任何節點,那麼啓動方式是沒有我選擇的選項的(後面會講啓動方式的配置),你只需要先隨意選擇一個保存即可

配置完所有的節點信息之後保存,會看到如下界面,我們可以點擊節點機器進去看一下[點擊window10]

裏面顯示是這樣的(你的機器看到的就是這樣的,因爲啓動方式你並沒有配置),明顯這裏是斷開鏈接的狀態,是無法使用的, 你先別管爲什麼,進入下面的設置

配置啓動方式

啓動方式的配置(配置上一個步驟中的啓動方式選項,讓我們需要的啓動方式能夠選擇)

返回Jenkins主目錄-點擊Manage Jenkins-選擇Configure Global Security(全局安全配置)

接下來勾選如下選項

全部勾選,或只勾選第3項即可(jave web的啓動方式),當然不同版本的jenkins這裏顯示的貌似也不太一樣,但是作用是一樣的,也許你的是如下頁面這樣的

保存全局安全配置,(這一步完成之後你需要重新到節點配置裏面把啓動方式修改一下,修成成我圖中的方式)之後再次保存節點的配置,接下來查看節點,你會看到如下顯示

啓動節點服務器

啓動節點服務器,目的是使節點服務器與Jenkins主機建立鏈接,有兩種方式啓動

1. 你可以點直接點擊Launch,然後根據提示,會執行下載slave-agent.jnlp文件,下載完成後,把此文件上傳到作爲節點的機器(192.168.1.103)的遠程工作目錄中(配置節點時的遠程工作目錄)

2. 點擊上圖中的agent.jar鏈接,下載此文件,下載完成後此文件傳到作爲節點的機器(192.168.1.103)的遠程工作目錄中(配置節點時的遠程工作目錄),在此目錄下執行cmd命令

java -jar agent.jar -jnlpUrl http://192.168.1.102:8080/computer/window10/slave-agent.jnlp -secret 3217c15e66f1fbbe597775fcd0513b895ccf02c3e7fc3e6b3d2a53d487e7bac4 -workDir "D:\Program Files (x86)\Jenkins"

注意其中的地址,地址中的ip是代理自動生成的Jenkins服務器代理地址,我們在執行命令時,需要把這個地址改爲真實的Jenkins服務器地址192.168.1.101

以上兩種方式任選其一,我這裏選擇執行cmd命令(注意命令是在節點主機上執行的),執行結果如下

再次查看Jenkins主機上的幾點狀態

構建配置

接下來配置一下Job,測試一下項目在節點主機上是否能夠成功構建並執行

新建項目

配置Geeral

注意這裏的標籤名,輸入後會自動識別之前節點的標籤

添加構建步驟

這裏我選擇的是執行windows批處理命令,這裏有個坑

python解釋器的完整目錄需要是節點主機上安裝的解釋器路徑,當然如果你的解釋器配置了環境變量,也可以省去完整路徑

ok,我們保存配置,我只做了簡單的配置,沒有其他功能,如果你想配置發送郵件拉取git庫的代碼執行等其他功能,你可以參考我之前的文章

執行構建

接下來我們手動執行一下構建,因爲這個項目是第一次配置的,所以需要手動執行一次構建,爲了生成項目的工作空間

當手動執行完構建之後,你會在節點主機的遠程項目目錄下發現生成了一個workspace文件夾且裏面包含了以項目名稱爲PytestUiAutoTest的文件夾

下一步,我們手動把項目的原代碼複製到此目錄下,然後再次執行構建

查看結果

Jenkins服務器控制檯日誌

通過控制檯日誌可以看到,執行任務的機器是我們配置的節點服務器執行的

最後

整個環境的配置到這裏已經全部搭建完成,再次聲明需要注意的幾點

1. 配置節點時的遠程工作目錄可以是節點服務器上的任意目錄

2. 啓動節點時的cmd命令中的ip地址一定是Jenkins服務器的真實地址,因爲換成代理的虛擬地址時,節點服務器鏈接不上Jenkins服務器(當然你也可以試試使用代理地址,我是沒成功)

3. 執行腳本的批處理命令中的python解釋器的路徑需要是節點服務器中安裝的pyhon解釋器的路徑(並不是Jenkins所在服務器的解釋器路徑)

4. 這點也是最重要的一點,前面所有配置的前提是你的Jenkins主機和節點主機已經配置了Java環境

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章