我使用 Rails 并使用 Capistrano 将应用程序部署到服务器。我有一个 Jenkins 服务器(在我自己的 linode 上)。
我想知道的是如何设置承包商,以便他们有足够的权限完成工作并使用我拥有的工具(如 Jenkins),但不允许他们造成任何严重损害。
工作流程可能是这样的:
- 提交对私有 git 存储库的更改
- 部署到詹金斯
- 将更改部署到登台服务器(我的 linode)
- 将更改部署到实时服务器(客户端的 linode)
我对所有事情都使用 SSH,但我想知道我是否可能允许用户过多访问,因为他们可能能够运行 sudo 命令并更改用户密码并绕过 SSH 密钥/对身份验证。每个用户是否应该有一个受限的 Linux 用户帐户(可能共享同一个受限帐户),并将他们的 SSH 密钥添加到其中?
我的另一个问题是,我可以使用 Jenkins 部署到登台/实时服务器,因此只能从我的 Jenkins 服务器授予对这些服务器的访问权限吗?
我可以通过只允许开发人员访问 git repo 来完成这一切吗?詹金斯跟踪,然后部署到登台/现场?