Jenkins的分布式構建

2022-09-15 18:33:09 字數 1901 閱讀 6797

1.架構

jenkins的master-sl**e分布式架構可以解決單點構建任務多、負載較高、效能不足的問題。

2.原理

對於jenkins的分布式框架,可以簡單的理解為server-client模式,在jenkins中是master-sl**e,也就是乙個主的server叫master,其他的子client都是sl**e,所以以後我們說sl**e就是指的乙個乙個的客戶端,而master就是指的主機。

master的作用:負責分發job任務的。把job分配給某個或者某幾個sl**e來工作。

sl**e的作用:負責幹活的,也就是do job的。乙個乙個的客戶端來真正執行master給我們的任務。

jenkins的分布式構建的核心概念是在sl**e主機部署乙個sl**e.jar(linux上是remoting.jar),然後master主機和sl**e主機的sl**e.jar(linux上是remoting.jar)通訊實現分布式構建,因此部署jenkins分布式構建的核心步驟是實現master主機和sl**e主機的無障礙(無密碼)通訊,如圖所示。

使用場景:多個自動化測試專案部署到jenkins,需要同時跑多個自動化用例以節省時間,可以使用jenkins的sl**e節點來執行分布式構建

3.搭建步驟(這裡我的master和sl**e都是cenos7,且master上jenkins是用root啟動的)

前置條件:master上需要安裝jenkins、jdk、git;

sl**e上需要安裝jdk、git(不需要安裝jenkins)

a.sl**e新建使用者jenkins(避免與其他使用者混淆,當然也可以使用其他使用者)參考:linux常用命令-11使用者相關命令

b.設定免密登入(master免密登入sl**e)參考:linux-scp命令及如何設定免密登入

在master上執行

ssh-keygen

ssh-copy-id  jenkins@sl**e伺服器的ip   #這裡的jenkins就是步驟a中新建的使用者jenkins,與a中的使用者保持一致即可

c.新建sl**e節點

登入到master上部署的jenkins,系統設定-節點管理-新建節點,進行下圖中的配置,注意credentials的配置,其實就是a中jenkins的使用者名稱和密碼(也可以用使用者名稱+msater的公鑰)

然後儲存後啟動**即可

節點列表可檢視剛剛建立的sl**e節點

d.新建job進行測試

新建乙個自由風格的job,並在general中設定限制專案的執行節點為178sl**e

檢視控制台輸出日誌及sl**e上workspace內容:

特別說明:

1.job中的ssh-agent我覺得配不配置都可,沒發現有什麼影響,但是配置的話,要使用私鑰id_rsa(與免密登入id_rsa不同)

2.sl**e上remoting.jar的位置

Jenkins 分布式執行

master sl e jenkins部署到linux伺服器,執行在windows本地 1 sl e向master報道 jenkins配置 節點管理 配置節點 通過launch,安裝jar包連線主機 2.正常配置jenkins任務 區別點 在general中設定 restrict配置,label是在...

分布式系統的構建原則

什麼是構建乙個可維護和可擴充套件的系統的意義?在早期,乙個系統的形態,只是滿足使用者和伺服器資源之間的通道,唯一要擴充套件和維護的是系統後面的資源,保證資源的可用和夠用,而系統本身的壓力並不大。如今,開源元件已經成為構建一些企業系統的基石,伴隨著行業的發展,最佳實踐和圍繞這些系統架構的指導原則也逐漸...

從構建分布式秒殺系統聊聊分布式鎖

摘要 前言 最近懶成一坨屎,學不動系列一波接一波,大多還都是底層原理相關的。上周末抽時間重讀了周志明大濕的 jvm 高效併發部分,每讀一遍都有不同的感悟。路漫漫,藉此,把前段時間搞著玩的秒殺案例中的分布式鎖深入了解一下。最近懶成一坨屎,學不動系列一波接一波,大多還都是底層原理相關的。上周末抽時間重讀...