Capistrano rvmsudo - PullRequest
       8

Capistrano rvmsudo

3 голосов
/ 13 ноября 2011

Capistrano не работает с rvmsudo в моем deploy.rb.

Я пытался

set :sudo, 'rvmsudo'
set :sudo_prompt, 'password: '

И затем выполнял команды с:

sudo "god -c config/unicorn.god --log-level debug"

НоCapistrano застревает в запросе пароля.

Это решение здесь говорит, что нужно использовать sudo "whoami", а затем rvmsudo, потому что он будет помнить ваш пароль в течение 5 минут, но мой пароль не запоминается.

контекст:

desc "Start unicorn"
  task :start, :except => { :no_release => true } do
  sudo "god -c config/unicorn.god --log-level debug"
end

Ответы [ 3 ]

3 голосов
/ 28 марта 2013

Попробуйте использовать это:

task :do_something do
    run "cd #{latest_release} && rvmsudo -p '#{sudo_prompt}' some_command"
end

Это сработало для меня!

3 голосов
/ 13 ноября 2011

Вы делаете

require 'bundler/capistrano'

?

Это хак, но вы можете попробовать:

after "deploy:update_code", :do_bundle_install

task :do_bundle_install do
  run "cd #{current_release} && rvmsudo bundle install --gemfile #{current_release}/Gemfile --path {path to install}/bundle --without development test cucumber"
end
1 голос
/ 21 сентября 2012

Попробуйте использовать sudo внутри команды run, но вызовите sudo из набора:

task :do_something do
  run "#{sudo} root task"
end

Таким образом, если вы передумаете, вам не нужно переписывать все задачи, только удалите set :sudo.

...