繁体   English   中英

GitLab CI和分布式构建混乱

[英]GitLab CI and Distributed Build Confusion

我对持续集成服务器比较陌生。 我一直在使用GitLab(v6.5)来管理项目,但我想开始使用GitLab CI来确保测试通过并且构建成功。

我的测试设置包括两个虚拟机:一台用于GitLab,另一台用于GitLab CI(和跑步者)。 但是,在生产中我只有一台机器,它正在运行GitLab。 GitLab团队发布了一篇有趣的博客文章 ,强调:

如果您在CI服务器上运行测试,那么您做错了!

这是一个非常翔实的帖子,但我并没有感觉到我理解这个特定点。 这是否意味着不应该在同一台服务器上运行GitLab和GitLab CI? 这是否意味着不应该在同一台服务器上运行GitLab CI和GitLab CI运行器? 或者两者兼而有之 - 我是否需要三台服务器,每项任务一台?

来自同一篇文章:

任何可以推送到CI服务器上测试的分支的人都可以轻松拥有该服务器。

这对我来说意味着跑步者是安全风险,因为他们可以运行提交中包含的东西。 如果是这种情况,那么典型的实施是什么? 把GitLab和GitLab CI放在同一台机器上,但是跑步者在一台单独的机器上? 如果跑步机受到损害,它还不会吮吸吗? 所以只要他们的代码机安全,人们可以丢失他们的跑步机吗?

我真的想更多地理解这一点 - 绝对在我在生产中实现它之前。 有没有可能安全的方法在同一台机器上实现GitLab,GitLab CI和GitLab CI跑步者?

理想情况下,您可以在同一主机上运行gitlab-ci和gitlab。 其他人可能不同意我,但是orechestrator(gitlab-ci节点)没有做任何繁重的工作。 它严格的工作元IO和仓储结果。

话虽如此,我不会把跑步者放在同一台机器上。 Gitlab-CI Runners是资源密集型的,无论您将它们放在哪台机器上,它都会全面执行。 如果你在生产中运行将这些放在现场实例上以帮助控制运行常常cpu /内存饥饿构建的一些成本,这是一个好主意 - 但是因为你的实例并不总是在那时开始,所以这是不切实际的。

我已经取得了一些成功,将我的gitlab-ci跑步者放在数字海洋中的小实例上。 我不是在进行巨大的构建,但我的想法是将工作负载分配给多个服务器,以便您的CI服务器:

  • 有回应
  • 可以一次构建多个项目构建
  • 可以运动隔离(这个列表中有点武断)

以及其他一些不会马上想到的事情。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM