0

我使用 Rails 并使用 Capistrano 将应用程序部署到服务器。我有一个 Jenkins 服务器(在我自己的 linode 上)。

我想知道的是如何设置承包商,以便他们有足够的权限完成工作并使用我拥有的工具(如 Jenkins),但不允许他们造成任何严重损害。

工作流程可能是这样的:

  • 提交对私有 git 存储库的更改
  • 部署到詹金斯
  • 将更改部署到登台服务器(我的 linode)
  • 将更改部署到实时服务器(客户端的 linode)

我对所有事情都使用 SSH,但我想知道我是否可能允许用户过多访问,因为他们可能能够运行 sudo 命令并更改用户密码并绕过 SSH 密钥/对身份验证。每个用户是否应该有一个受限的 Linux 用户帐户(可能共享同一个受限帐户),并将他们的 SSH 密钥添加到其中?

我的另一个问题是,我可以使用 Jenkins 部署到登台/实时服务器,因此只能从我的 Jenkins 服务器授予对这些服务器的访问权限吗?

我可以通过只允许开发人员访问 git repo 来完成这一切吗?詹金斯跟踪,然后部署到登台/现场?

4

1 回答 1

2

基本上,我认为 apporach 应该是下一个。

  1. 设置 jenkins 以在提交完成后运行测试 gitolite 或您使用的任何东西,并通过电子邮件将结果发送给每个人。
  2. 允许承包商部署到登台 - 因为他们需要进行测试。
  3. 只有您可以部署到生产环境。

Also you shouldn't give them sudo on staging machine. Just setup a deployment role which gives access to the directory with code. Because you even'don't need do server restarts if you use passenger(just use touch %RAILS_ROOT%/tmp/restart.txt , if you know what i mean) And setup the ruby env via rvm

于 2012-12-13T12:54:29.953 回答