设置GIT发展服务器

问题描述:

目前,我们有以下的情况/问题:设置GIT发展服务器

我们的开发工作当地

开发推他到GIT服务器上的存储库变化(一切都很好了到现在为止,因为GitLab我已经设置了SSH密钥和个人可以克隆/拉/推)

开发服务器我需要这是来回拉m git和这里的问题开始。

我们有1开发服务器,与> 20个网站,所以在我看来这是20用户,我需要把Git中看到的是我们计划使用它为所有与创建SSH-键为每个用户seperatly的,才能够有存取权限拉那名到库所做的更改

以上基本进入同样为我们的直播服务器。

我不知道如何解决这个问题,有没有一种集中的方式,我可以简单地在服务器级别上提供访问权限以便进行更改?我一直在考虑它大约1.5个月,可能会以错误的方式看待它。

补充:我们有大约14台服务器在运行,所以就是这样。

+0

“Deploy-Keys”怎么样? – tkausl

+0

为什么你要坚持每个网站的帐户?为什么不创建一个通用账户“开发服务器”,将用于服务器上的所有Git活动(我假设这些是构建/自动化活动)。 –

+0

@EldadAK我不会坚持为每个网站使用一个帐户,只是当我使用不同的帐户时,我觉得当我们需要在开发网站上进行编辑时遇到麻烦,看到你用不同的帐户所有者和原始所有者不能再写入它。我们也可能无法获得所有本地网站。这是我们之前为每个用户完成的原因,可惜我不知道有什么不同。 – Dekcolnu

来源:Gitlab SSH Readme

部署键

部署键允许只读到多个项目进入了一个SSH密钥。

这对于将存储库克隆到持续集成(CI)服务器非常有用。通过使用部署密钥,您不必设置虚拟用户帐户。

如果您是项目的主人或所有者,您可以在“部署密钥”部分的项目设置中添加部署密钥。按'新部署密钥'按钮并上传公共SSH密钥。在此之后,使用相应私钥的机器对项目具有只读访问权限。

您无法使用“新部署密钥”选项两次添加相同的部署密钥。如果您想要将相同的密钥添加到另一个项目中,请在列表中显示'从可用项目部署密钥'。您有权访问的所有项目的所有部署密钥都可用。此项目访问可以通过作为项目的直接成员或通过小组来实现。有关更多信息,请参阅app/models/user.rb中的def accessible_deploy_keys。

部署密钥可以在项目之间共享,您只需将它们添加到每个项目。

+0

我怎么从未见过这个? 我以root用户身份创建了我的开发密钥,并且假定这是标准位置,它被放置在/root/.ssh/id_rsa(.pub),但是,当我切换到例如该服务器上的user1以从存储库中提取时,GitLab似乎没有看到它,或它不工作(要求git密码,因为它与试图拉的没有acces的帐户) 我想我失去了一些东西。 我在这种方式,还没有停留在GitLab上的很多用户(因为服务器上的用户),如果我拉作为一个不同的用户,那么另一个用户不能编辑正确吗? – Dekcolnu

+0

我建议你在部署环境中有一个用户,我们称他们为'deploy',因为创意命名很难。这就是使用ssh公钥下拉代码的单一责任(作为所有相关项目的只读部署密钥添加)。然后,您可以让该用户在适当的任何位置将git clone或git pull(或您首选的部署方法)代码发送到服务器,并让每个应用程序都在特定于该应用程序的用户下运行。 – jmuise

+0

感谢您的解释。这可能是我很没经验,这可能是一个愚蠢的问题。用户“部署”如何访问“user1”或任何其他用户的文件,因为它不是根?另外,如果我以该用户在该开发服务器上“部署”的方式提取,则该网站中的文件(以前由用户1拥有)现在将由用户部署,这意味着网站的所有者(用户1)不能编辑该文件现在,情况有时会发生在我们身上。 – Dekcolnu