Forum: Ruby problems with rake and sh

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
5adbe9e20522d6a177e76b223b6750ed?d=identicon&s=25 Dave Foo (hunkybill)
on 2009-01-27 18:27
Hi,

I am using ssh to login to my Amazon EC2 server, and using a rake task
to automate some activities on the machine. Every time I login, it is a
new machine, so I have no host keys from the machine and SSH connections
pass back the warning that a new key was added to my local known hosts
file.

When I connect via the shell without using ruby, my command works great
with no errors. Inside my rake task, using ruby, I am almost always
having the rake task blow out with an error. How can I construct my ruby
to shell out without choking on this ssh issue???

eg command:

sh "ssh -i /home/foo/.ssh/id_rsa-bs-keypair
root@#{@instance[0][:dns_name]}  'mkdir /mnt/data_store && mount
/dev/sdf /mnt/data_store'"

This is usually resulting in something like:

ssh: connect to host ec2-72-44-38-77.compute-1.amazonaws.com port 22:
Connection refused
rake aborted!

Any one know of how I can get this small snippet to work in a ruby
task???

Thanks
Bec38d63650c8912b6ba9b557fb953b9?d=identicon&s=25 Roger Pack (rogerdpack)
on 2009-01-28 21:04
> Any one know of how I can get this small snippet to work in a ruby
> task???

maybe run it within bash or sh -c or so... [?]
-=r
5adbe9e20522d6a177e76b223b6750ed?d=identicon&s=25 Dave Foo (hunkybill)
on 2009-01-28 21:07
Roger Pack wrote:
>
>> Any one know of how I can get this small snippet to work in a ruby
>> task???
>
> maybe run it within bash or sh -c or so... [?]
> -=r

It does run fine in bash... the whole point for me is to use Ruby inside
a rake task to do my work... and the one thing I cannot figure out is
how to get the ssh connection to work.

If I connect once and simply exit... and then connect again, in the same
script.. with the same server instance, every further call that shells
out works fine. It is only a problem getting the initial shell
connection to work. I am sure there is a config change I can make to
solve this, but so far, my only work-around has been the silly "connect
first in a loop"...

Thanks
Ff97ca87af59ee68ceff5877a8365788?d=identicon&s=25 Jarmo Pertman (juuser)
on 2009-01-31 13:54
Maybe Net::SSH could help you: http://net-ssh.rubyforge.org/

Jarmo

Dave Foo wrote:
> It does run fine in bash... the whole point for me is to use Ruby inside
> a rake task to do my work... and the one thing I cannot figure out is
> how to get the ssh connection to work.
> ...
> Thanks
This topic is locked and can not be replied to.