[Capistrano] Re: "you must have a tty to run sudo"
For a more global fix that will resolve this for any other application you may have that is attempting to execute sudo remotely, edit your sudoers file on the remote machine(s) via visudo. Search for 'Defaultsrequiretty' and comment it out. On Jun 27, 1:56 pm, Jamis Buck <[EMAIL PROTECTED]> wrote: > Incidentally, if you want to run without a pty in general (which is > handy, because then your .bashrc will be loaded for each command), you > can specify :pty => true on specific commands to force those to use a > pty: > > sudo "foo", :pty => true > > - Jamis > > On Jun 27, 2008, at 2:42 PM, Jamie Orchard-Hays wrote: > > > > > Thanks, Jamis! > > > Jamie > > > On Jun 27, 2008, at 4:32 PM, Jamis Buck wrote: > > >> You need to tell cap to create a pty for each process: > > >> default_run_options[:pty] = true > > >> Annoying, but some commands that have interactive components (like > >> sudo) won't run if they aren't run with a tty. > > >> - Jamis > > >> On Jun 27, 2008, at 2:20 PM, Jamie Orchard-Hays wrote: > > >>> I'm getting this error when I try to use sudo to copy a file from a > >>> tmp dir to init.d. I'm using Cap 2.4.1 *without* Cap's deploy file, > >>> as > >>> this is a non-rails deployment. Here's the error: > > >>> * executing "sudo -p 'sudo password: ' cp /var/www/apps/tmp/xtfd / > >>> etc/init.d/xtfd" > >>> servers: ["myserver.com"] > >>> [myserver.com] executing command > >>> *** [err :: myserver.com] sudo: > >>> *** [err :: myserver.com] sorry, you must have a tty to run sudo > >>> *** [err :: myserver.com] > >>> command finished > >>> command "sudo -p 'sudo password: ' cp /var/www/apps/tmp/xtfd /etc/ > >>> init.d/xtfd" failed on myserver.com > > >>> Here's my task: > > >>> set :user, "deploy" > >>> # etc... > > >>> namespace :xtf do > > >>> desc "Setup the XTF server, including the init.d/xtfd script" > >>> task :setup, :roles => :xtf do > >>> file = File.join(File.dirname(__FILE__), "templates", "xtfd") > >>> template = File.read(file) > >>> buffer = ERB.new(template).result(binding) > > >>> run("mkdir -p #{xtf_tmp}") > > >>> put buffer, "#{xtf_tmp}/xtfd", :mode => 0766 > >>> sudo("cp #{xtf_tmp}/xtfd #{xtfd}") > >>> sudo("rm -f #{xtf_tmp}/xtfd") > >>> sudo("chmod 755 #{xtfd}") > >>> sudo("#{chkconfig} xtfd on") > >>> end > >>> end > > >>> Thanks, > > >>> Jamie > > --~--~-~--~~~---~--~~ To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/capistrano -~--~~~~--~~--~--~---
[Capistrano] Re: "you must have a tty to run sudo"
Incidentally, if you want to run without a pty in general (which is handy, because then your .bashrc will be loaded for each command), you can specify :pty => true on specific commands to force those to use a pty: sudo "foo", :pty => true - Jamis On Jun 27, 2008, at 2:42 PM, Jamie Orchard-Hays wrote: > > > Thanks, Jamis! > > Jamie > > On Jun 27, 2008, at 4:32 PM, Jamis Buck wrote: > >> >> >> You need to tell cap to create a pty for each process: >> >> default_run_options[:pty] = true >> >> Annoying, but some commands that have interactive components (like >> sudo) won't run if they aren't run with a tty. >> >> - Jamis >> >> On Jun 27, 2008, at 2:20 PM, Jamie Orchard-Hays wrote: >> >>> >>> >>> I'm getting this error when I try to use sudo to copy a file from a >>> tmp dir to init.d. I'm using Cap 2.4.1 *without* Cap's deploy file, >>> as >>> this is a non-rails deployment. Here's the error: >>> >>> * executing "sudo -p 'sudo password: ' cp /var/www/apps/tmp/xtfd / >>> etc/init.d/xtfd" >>> servers: ["myserver.com"] >>> [myserver.com] executing command >>> *** [err :: myserver.com] sudo: >>> *** [err :: myserver.com] sorry, you must have a tty to run sudo >>> *** [err :: myserver.com] >>> command finished >>> command "sudo -p 'sudo password: ' cp /var/www/apps/tmp/xtfd /etc/ >>> init.d/xtfd" failed on myserver.com >>> >>> Here's my task: >>> >>> >>> set :user, "deploy" >>> # etc... >>> >>> namespace :xtf do >>> >>> desc "Setup the XTF server, including the init.d/xtfd script" >>> task :setup, :roles => :xtf do >>> file = File.join(File.dirname(__FILE__), "templates", "xtfd") >>> template = File.read(file) >>> buffer = ERB.new(template).result(binding) >>> >>> run("mkdir -p #{xtf_tmp}") >>> >>> put buffer, "#{xtf_tmp}/xtfd", :mode => 0766 >>> sudo("cp #{xtf_tmp}/xtfd #{xtfd}") >>> sudo("rm -f #{xtf_tmp}/xtfd") >>> sudo("chmod 755 #{xtfd}") >>> sudo("#{chkconfig} xtfd on") >>> end >>> end >>> >>> Thanks, >>> >>> Jamie >>> >> >> >>> >> >> > > > > --~--~-~--~~~---~--~~ To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/capistrano -~--~~~~--~~--~--~---
[Capistrano] Re: "you must have a tty to run sudo"
Thanks, Jamis! Jamie On Jun 27, 2008, at 4:32 PM, Jamis Buck wrote: > > > You need to tell cap to create a pty for each process: > > default_run_options[:pty] = true > > Annoying, but some commands that have interactive components (like > sudo) won't run if they aren't run with a tty. > > - Jamis > > On Jun 27, 2008, at 2:20 PM, Jamie Orchard-Hays wrote: > >> >> >> I'm getting this error when I try to use sudo to copy a file from a >> tmp dir to init.d. I'm using Cap 2.4.1 *without* Cap's deploy file, >> as >> this is a non-rails deployment. Here's the error: >> >> * executing "sudo -p 'sudo password: ' cp /var/www/apps/tmp/xtfd / >> etc/init.d/xtfd" >>servers: ["myserver.com"] >>[myserver.com] executing command >> *** [err :: myserver.com] sudo: >> *** [err :: myserver.com] sorry, you must have a tty to run sudo >> *** [err :: myserver.com] >>command finished >> command "sudo -p 'sudo password: ' cp /var/www/apps/tmp/xtfd /etc/ >> init.d/xtfd" failed on myserver.com >> >> Here's my task: >> >> >> set :user, "deploy" >> # etc... >> >> namespace :xtf do >> >> desc "Setup the XTF server, including the init.d/xtfd script" >> task :setup, :roles => :xtf do >>file = File.join(File.dirname(__FILE__), "templates", "xtfd") >>template = File.read(file) >>buffer = ERB.new(template).result(binding) >> >>run("mkdir -p #{xtf_tmp}") >> >>put buffer, "#{xtf_tmp}/xtfd", :mode => 0766 >>sudo("cp #{xtf_tmp}/xtfd #{xtfd}") >>sudo("rm -f #{xtf_tmp}/xtfd") >>sudo("chmod 755 #{xtfd}") >>sudo("#{chkconfig} xtfd on") >> end >> end >> >> Thanks, >> >> Jamie >> >>> > > > > > > --~--~-~--~~~---~--~~ To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/capistrano -~--~~~~--~~--~--~---
[Capistrano] Re: "you must have a tty to run sudo"
You need to tell cap to create a pty for each process: default_run_options[:pty] = true Annoying, but some commands that have interactive components (like sudo) won't run if they aren't run with a tty. - Jamis On Jun 27, 2008, at 2:20 PM, Jamie Orchard-Hays wrote: > > > I'm getting this error when I try to use sudo to copy a file from a > tmp dir to init.d. I'm using Cap 2.4.1 *without* Cap's deploy file, as > this is a non-rails deployment. Here's the error: > > * executing "sudo -p 'sudo password: ' cp /var/www/apps/tmp/xtfd / > etc/init.d/xtfd" > servers: ["myserver.com"] > [myserver.com] executing command > *** [err :: myserver.com] sudo: > *** [err :: myserver.com] sorry, you must have a tty to run sudo > *** [err :: myserver.com] > command finished > command "sudo -p 'sudo password: ' cp /var/www/apps/tmp/xtfd /etc/ > init.d/xtfd" failed on myserver.com > > Here's my task: > > > set :user, "deploy" > # etc... > > namespace :xtf do > > desc "Setup the XTF server, including the init.d/xtfd script" > task :setup, :roles => :xtf do > file = File.join(File.dirname(__FILE__), "templates", "xtfd") > template = File.read(file) > buffer = ERB.new(template).result(binding) > > run("mkdir -p #{xtf_tmp}") > > put buffer, "#{xtf_tmp}/xtfd", :mode => 0766 > sudo("cp #{xtf_tmp}/xtfd #{xtfd}") > sudo("rm -f #{xtf_tmp}/xtfd") > sudo("chmod 755 #{xtfd}") > sudo("#{chkconfig} xtfd on") > end > end > > Thanks, > > Jamie > > > --~--~-~--~~~---~--~~ To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/capistrano -~--~~~~--~~--~--~---