我在公司中设置了一个GitLab服务器,现在向它添加了GitLab CI。
在开始此任务之前,我想了解在GitLab和GitLab CI使用的同一服务器上运行运行程序是否有任何不利之处。
我读过有安全性问题,但我们仅在内部使用它,因此我认为这可能不是问题。
我想念什么吗?
我在公司中设置了一个GitLab服务器,现在向它添加了GitLab CI。
在开始此任务之前,我想了解在GitLab和GitLab CI使用的同一服务器上运行运行程序是否有任何不利之处。
我读过有安全性问题,但我们仅在内部使用它,因此我认为这可能不是问题。
我想念什么吗?
Answers:
想象以下情况:
内部开发人员想伤害公司(因为认为工资不高,因为他的老板和妻子一起睡觉;原因无关紧要),他进行了单元测试,该单元测试在运行时而不是测试应用程序,而是搜索GitLab存储库并删除它。在下一次提交时,令人惊讶的是,项目的所有源代码都丢失了(但是您进行了备份并进行了测试,对吗?)
或者,同一位开发人员注意到在同一台计算机上配置了存储库的备份。他通过单元测试来更改此配置,以使备份现在包含另一个存储库,并等待一个月(即保留备份的时间)。现在所有备份都已损坏,他可以提交单元测试,从服务器中清除源代码。
或者实习生想将源代码出售给竞争对手。您已经仔细配置了访问权限,并将其限制为仅满足他的工作需要。同时,他可以通过单元测试无限制地访问存储库本身,并且能够执行完整的转储。
除非单元测试在权限受限的上下文中运行并且无法访问测试所需的目录和文件以外的其他内容,否则将CI服务器与保留您的存储库的服务器混合使用确实是危险的。
另一个问题是版本控制服务器应该很快。安装在同一台计算机上的CI服务器可能会降低提交速度。
鉴于没有用于git的中央“全知”服务器,这与其他一些源代码控制系统一样不错。
如果有一个自动的git服务器不在场上到另一个git服务器(已经过测试),则我不会在小公司中担心此设置。
理想情况下,我希望看到开发人员将他们的更改推送到偏移服务器git服务器,然后再将CI服务器从偏移服务器中提取费用–这样,每次完成签入后,都会测试异地服务器。
如果开发人员然后总是从现场服务器撤出以节省时间,那不是问题。