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

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

如果您在CI服务器上运行测试,则您正在执行错误!

这是一个非常丰富的帖子,但我没有离开感觉,就像我理解这个特定点。这是否意味着一个不应该在同一台服务器上运行gitlab和gitlab ci?它是否意味着不应该在同一台服务器上运行gitlab ci和gitlab ci runners?或两者 - 我需要三个服务器,每个任务是一个吗?

来自同一帖子:

任何可以推达在CI服务器上测试的分支的人都可以容易地拥有该服务器。

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

我真的很想在我在生产中实现它之前更加了解这一点 - 绝对是。是否有可能在同一台机器上实现Gitlab,Gitlab CI和Gitlab CI跑步者的方法?

有帮助吗?

解决方案

理想情况下,您可以在同一主机上运行gitlab-ci和gitlab。其他人可能不同意我,但是Orechestrator(Gitlab-Ci节点)没有任何沉重的举重。它严格的荟萃IO和仓储结果。

如上所说,我会不是把跑步者放在同一台机器上。 Gitlab-CI跑步者是资源密集型,并将在您将它们放在任何机器上的完整倾斜度上执行。它是一个好主意,如果您在生产中运行,以便将这些在现场实例上放在现场实例中,以帮助抑制运行饥饿的CPU /内存的一些成本 - 但可能是不切实际的,因为您的实例并不总是在那点。

我已经取得了一些成功,把我的Gitlab-Ci Runner放在小型情况下。我没有做出巨大的构建,但这个想法是将工作负载分发到几个服务器,以便您的CI服务器:

  • 响应
  • 可以立即构建多个项目构建
  • 可以运动隔离(这是本名单中的任意)

还有一些不立即想到的东西。

希望这有帮助!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top