gpt4 book ai didi

GitLab CI 和分布式构建混淆

转载 作者:行者123 更新时间:2023-12-04 15:11:34 26 4
gpt4 key购买 nike

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

我的测试设置由两台虚拟机组成:一台用于 GitLab,另一台用于 GitLab CI(和运行程序)。但是,在生产中,我只有一台运行 GitLab 的机器。 GitLab 团队发布了一条 interesting blog post前阵子强调:

If you are running tests on the CI server you are doing it wrong!



这是一篇内容丰富的帖子,但我并没有感觉自己理解了这一点。这是否意味着不应在同一台服务器上运行 GitLab 和 GitLab CI?这是否意味着不应在同一台服务器上运行 GitLab CI 和 GitLab CI runners?或者两者兼而有之——我是否需要三台服务器,每个任务一台?

来自同一帖子:

Anybody who can push to a branch that is tested on a CI server can easily own that server.



这对我来说意味着运行者是安全风险,因为他们可以运行提交中包含的内容。如果是这种情况,典型的实现是什么?将 GitLab 和 GitLab CI 放在同一台机器上,但运行程序在不同的机器上?如果转轮机受到损害,它会不会仍然很糟糕?所以只要他们的代码机器是安全的,人们就可以失去他们的运行机吗?

我真的很想多了解一点——肯定是在我在生产中实现之前。有没有可能但安全的方法来在同一台机器上实现 GitLab、GitLab CI 和 GitLab CI runners?

最佳答案

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

话虽如此,我不会将运行者放在同一台机器上。 Gitlab-CI Runners 是资源密集型的,并且将在您放置它们的任何机器上全速执行。如果您在生产环境中运行,将这些实例放在现场实例上以帮助抑制运行经常消耗 CPU/内存的构建的一些成本,这是一个好主意 - 但可能不切实际,因为您的实例在那时并不总是处于运行状态。

我已经将我的 gitlab-ci runner 放在 digital ocean 中的小实例中取得了一些成功。我不是在做巨大的构建,但我的想法是将工作负载分配给多个服务器,以便您的 CI 服务器:

  • 响应式
  • 可以一次构建多个项目构建
  • 可以进行隔离(这在这个列表中有点随意)

  • 以及其他一些不会立即想到的事情。

    希望这可以帮助!

    关于GitLab CI 和分布式构建混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22054716/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com