2014-02-26 110 views
6

我對持續集成服務器比較陌生。我一直在使用GitLab(v6.5)一段時間來管理項目,但我想開始使用GitLab CI來確保測試通過並建立成功。GitLab CI和分佈式構建混淆

我的測試設置由兩臺虛擬機組成:一臺用於GitLab的機器和另一臺用於GitLab CI(和跑步者)的機器。但是,在生產中,我只有一臺運行GitLab的機器。 GitLab團隊發佈了一個interesting blog post,而後者則強調:

如果您在CI服務器上運行測試,那麼您做錯了!

這是一個非常豐富的文章,但我沒有離開感覺就像我明白這一點。這是否意味着不應該在同一臺服務器上運行GitLab和GitLab CI?這是否意味着不應該在同一臺服務器上運行GitLab CI和GitLab CI跑步者?或者兩者兼而有之 - 我是否需要三臺服務器,每個任務一臺?

從同一職位:

如果誰可以推到這是一個CI服務器上測試可以輕鬆擁有該服務器的分支。

這意味着對我來說,跑步者是安全風險,因爲他們可以運行包含在提交中的東西。如果是這種情況,典型的實現是什麼?把GitLab和GitLab CI放在同一臺機器上,但是在單獨的機器上運行?如果亞軍機器受到威脅,它會不會仍然吸吮?所以,只要他們的代碼機器安全,人們可以丟掉他們的亞軍機器嗎?

我真的很想多瞭解一點 - 在我將其應用於生產之前絕對是這樣。是否有任何可能的安全方法在同一臺機器上實現GitLab,GitLab CI和GitLab CI跑步者?

回答

5

理想情況下,你可以在同一主機上運行gitlab-ci和gitlab。其他人可能會不同意我的看法,但是直銷商(gitlab-ci節點)不會做任何繁重的工作。其嚴格的工作元IO和倉儲結果。

就這樣說,我會不是把跑步者放在同一臺機器上。 Gitlab-CI Runners是資源密集型的,無論您將它們放置在哪個機器上,它都會全速執行。如果您在生產環境中運行這些應用程序以幫助遏制運行經常需要cpu /內存的構建的一些成本,那麼這是一個好主意 - 但由於您的實例並非始終處於這種狀態,因此可能不切實際。

我把我的gitlab-ci亞軍在數字海洋中的小實例上取得了一些成功。我沒有做巨大的建立,但這個想法是對分配幾臺服務器的工作負荷讓你的CI服務器:

  • 響應
  • 可以建立多個項目建立在一次
  • 可以鍛鍊隔離(這是在這個列表中的任意一種)

和其他一些事情,不會馬上想到。

希望這會有所幫助!

+0

我很欣賞這種迴應!是的,GitLab CI本身似乎只是一個Web前端,所以它的意義在於,跑者實際上是原文中引用的博客條目所指的內容。 – Kyle