1

My capistrano deploy.rb has a foreman export command for a rails app on Ubuntu 10.04 So, while deploying, I want to export the foreman to upstart script. But doing that, the command rvmsudo foreman export ... asks for root password and I cannot do anything. Googled a lot and tried with various tweaks but nothing worked.

 * executing `foreman:export'
 * executing "cd /home/deploy/zappy/releases/20111019175422 && rvmsudo foreman export upstart /etc/init -a zappy -u deploy -f ./Procfile.production -c worker=1 redis=1 -l /home/deploy/zappy/releases/20111019175422/log/foreman"
   servers: ["173.255.205.237"]
   [173.255.205.237] executing command
** [out :: 173.255.205.237] [sudo] password for deploy:

What could be the solution to do it password-less way?

quanta
  • 51,413
  • 19
  • 159
  • 217
millisami
  • 395
  • 2
  • 4
  • 13

1 Answers1

3

I had this same problem/question. Here's a snippet from my working deploy.rb file. Note: I've altered /etc/sudoers to allow my deploy user to run the sudo mv... command

foreman_temp = "/tmp/#{application}-foreman"
run [
  "mkdir -p #{foreman_temp}",
  "cd #{release_path}",
  "/usr/local/rvm/gems/ruby-1.9.2-p290/bin/bundle exec foreman export upstart #{foreman_temp} -a #{application} -u #{user} -l #{shared_path}/log -f Procfile",
  "sudo mv #{foreman_temp}/#{application}*.conf /etc/init/",
  "rm -rf #{foreman_temp}"
].join('&&')