Problems with rake and sh

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

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

Roger P. 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

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