0

设置Capistrano将Rails应用程序部署到具有不同环境的多个环境的正确方法是什么?换句话说,设想开发人员对代码进行更改并将更改推送到测试环境的典型场景。经过测试后,发布经理将更改推送到生产环境。等等,其中可能有额外的水平。 Capistrano(即使是capistrano-ext中的多级扩展)似乎是为有权部署到任何环境的单个用户构建的。对于底层人员不应该能够部署到生产环境的情况,建议的设置是什么?使用Capistrano部署到多个环境的权限

回答

1

在设置Capistrano和部署时,用于部署的用户帐户与可部署权限的人之间存在差异。

在Capistrano的你设置的用户

set :user, 'deploy' 

此用户帐户必须存在于每个机器的Capistrano的部署脚本连接,每个角色appwebdb上。建议使用SSH key authentication进行设置。

当有人使用cap deploy时,它将使用SSH密钥连接到计算机,并且只有在该帐户上安装了公钥时才能使用。

该方法允许不同的人对机器有不同的访问权限。对于production,只能安装管理员访问机器的人员的SSH密钥。然后,即使有人运行cap deploy,它也无法工作,因为它们无法连接到远程用户。

我们允许任何人在临时环境中拥有SSH密钥,但只有几个人才能访问生产服务器。