服务器配置和部署RoR应用程序

时间:2013-02-06 21:22:52

标签: ruby-on-rails capistrano

我目前正致力于为某些项目提供服务器配置和部署自动化。我决定使用Sprinkle& Capistrano的。我实际上是在处理ssh用户的东西,因为我想要,作为配置阶段的一部分,以创建一个“部署”用户,Capistrano应该使用它来执行部署。我面临的问题与我应该配置deploy.rb的方式有关,我不知道如何设置用户&密码(让我们说“root”)由sprinkle使用,之后将它们更改为新创建的“deploy”用户以使用Capistrano执行部署。供应和部署是两个不同的阶段,但它们共享相同的配置,也许有一些技巧可以做到这一点;有没有这方面经验的人?

2 个答案:

答案 0 :(得分:0)

您可以像这样配置Capistrano的部署用户:

set :user, "deploy_username"

您也可以使用set :password, "secret_password"设置密码,但更可取的方法是手动输入密码,或者为您设置SSH密钥。这样可以避免将密码存储在纯文本中。

Sprinkle在ssh块下有类似的设置:

ssh do
  user 'sprinkle_user' # defaults to 'root'
  password 'secret'
end

但同样的问题在这里适用 - 你应该为此目的手动提供密码。

答案 1 :(得分:0)

我建议使用ElasticBox在任何云中配置您的Rails服务器。

您只需要为此目的创建一个自定义框,或使用Rails框自动执行它。

框抽象为您提供了向文件添加任何自定义步骤的灵活性(如deploy.rb),您还可以在部署时添加用于对服务器执行任何ssh配置的脚本。

这是一篇很好的博客文章,解释如何使用ElasticBox部署多服务器Rails应用程序: https://elasticbox.com/blog/deploy-multi-server-rails-app/

相关问题