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