设置 Capistrano 以将 Rails 应用程序部署到具有每个环境所需不同权限的多个环境的正确方法是什么?换句话说,想象一个典型的场景,开发人员对代码进行更改并将更改推送到测试环境。测试后,发布经理将更改推送到生产环境。依此类推,中间可能还有其他级别。Capistrano(即使在 capistrano-ext 中具有多级扩展)似乎是为有权部署到任何环境的单个用户构建的。对于底层人员不应该一直部署到生产的情况,推荐的设置是什么?
问问题
561 次
1 回答
1
在设置 Capistrano 和部署时,用于部署的用户帐户与可以部署的具有权限的人员之间存在差异。
在 Capistrano 中,您设置用户
set :user, 'deploy'
此用户帐户必须存在于 Capistrano 部署脚本连接的每台计算机上,每个角色app
, web
, db
. 建议使用SSH 密钥身份验证进行设置。
当有人使用cap deploy
它时,它将使用 SSH-Keys 连接到机器,并且只有当您在该帐户上安装了您的公钥时才会工作。
这种方法允许不同的人对机器有不同的访问权限。对于production
,仅安装对机器具有管理员访问权限的人员的 SSH 密钥。然后,即使有人运行cap deploy
它也不会工作,因为他们无法连接到远程用户。
我们允许任何人在暂存环境中拥有他们的 SSH 密钥,但只有少数人可以访问生产服务器。
于 2011-01-27T19:53:30.247 回答