使用capistrano的未知用户'app'

时间:2010-05-04 15:17:38

标签: ruby-on-rails ruby deployment capistrano

这是我第一次尝试设置capistrano来部署rails应用程序。我正在从我的本地计算机部署到我的远程服务器,该服务器在同一台计算机上都有repo,web,app和mysql服务器。我正在按照这个步骤:http://www.capify.org/index.php/From_The_Beginning

我接到命令

cap deploy:start

然后我收到此错误:

*** [err :: example.com] sudo: unknown user: app
   command finished
failed: "sh -c 'cd /var/www/example/current && sudo -p '\\''sudo password: '\\'' -u app nohup script/spin'" on example.com

我应该添加一个'app'用户,还是有办法改变命令运行的用户?

这是我的deploy.rb:

set :application, "example"
set :repository,  "git@example.com:example.git"
set :user, "trobrock"
set :branch, 'master'

set :deploy_to, "/var/www/example"

set :scm, :git
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none`

role :web, "example.com"                           # Your HTTP server, Apache/etc
role :app, "example.com"                           # This may be the same as your `Web` server
role :db,  "example.com", :primary => true         # This is where Rails migrations will run

显然,无处不在,它说example.com是我的服务器主机名,而且只是说例子就是应用程序名称。

2 个答案:

答案 0 :(得分:2)

失败的命令正在尝试sudo。也许您应该将use_sudo设置为false

set :use_sudo, false 

如果未设置为false

,我会收到类似的异常 祝你好运

答案 1 :(得分:0)

我认为你会发现你的应用程序用于此命令的'跑步者'默认为'app'。当你拥有:用户设置时,我想你需要设置:runner或:admin runner to'trobbrock'。有关更多信息,请参阅blog post on runners。语法如下:

set :runner, 'trobrock'
set :admin_runner, 'trobrock'

我想你会发现:跑步者就是你所追求的。

也就是说,看起来像deploy:start是deprecated,不应该使用。在所有食谱中,我现在已经多次覆盖了它。既然你已经设置了部署,我建议你跳进'cap deploy'并看看会发生什么。

如果您有任何其他问题,请在发布新问题时随时与我联系:)