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