一千萬個為什麽

搜索

沒有從節點的Jenkins服務器可以嗎?



In my team we have one Jenkins server with one master node & one slave node in the same server. We use Jenkins Pipelines and surround everything with node{}.

在一位同事的團隊中,我看到,出於某種原因,他們有一個主節點和一個從節點。他們的所有版本都在主節點中運行。

問題:

  • Is this a bad practice?
  • Are there any bad consequences for having only one master node?
  • Is my setup (one master & one slave) a bad practice?

轉載註明原文: 沒有從節點的Jenkins服務器可以嗎?

一共有 2 個回答:

https://wiki.jenkins.io/display/JENKINS/Jenkins+Best+Practices

在較大的系統中,不要在主設備上構建。

     

如果你有一個更復雜的安全設置,允許一些用戶   只配置作業,但不管理詹金斯,你需要預防   他們從主節點上運行構建,否則他們有   無限制地訪問JENKINS_HOME目錄。你可以這樣做   通過設置執行器計數為零。相反,確保所有作業都運行   在奴隸。這確保詹金斯大師可以擴展支持   許多更多的工作,並且它還保護構建不被修改   敏感數據在$ JENKINS_HOME偶然/惡意。如果你需要   一些工作在master上運行(例如Jenkins自己的備份),使用   作業限制插件限制哪些作業可以在那裏執行。


一個主節點和一個從節點。他們所有的構建都以主人為中心   節點。這是不好的做法?

在主節點上運行作業意味著作業可以無限制地訪問JENKINS_HOME目錄

是否有只有一個主節點的不良後果?

由於奴隸無限制地進入JENKINS_HOME目錄,這可能是不安全的

Is my setup (one master & one slave) a bad practice?

只要所有的作業在奴隸上運行,它總比只有一個主人好


總之,從安全角度來看,在主服務器上運行作業是一種不好的做法。

在某些情況下,在主節點上運行作業很好,但您必須小心。就像上面提到的其他答案一樣,一般來說,在主節點上運行的作業是不好的做法,因為作業不是在主節點上進行沙箱化。

這就是說,有時你確實想在主節點上運行作業。例如,我的Jenkins安裝中的兩個工作是:

  • 查找其依賴關系已更新的作業,並針對新版本的依賴項
  • 為其計劃構建
  • 找到尚未構建的開放式請求,並為其安排構建

我(作為Jenkins管理員)完全控制這些作業,這些特定作業都不會觸及磁盤上的任何文件(它們本質上是“元”作業),我希望它們甚至可以在所有執行器插槽在我的奴隸身上很忙,我寧願這些工作不會阻止隊列中更重要的工作。出於這些原因,我允許這兩個作業 - 並且僅這兩個作業 - 在主節點上運行。