problems with rake and sh

Discussion in 'Ruby' started by Dave Foo, Jan 27, 2009.

  1. Dave Foo

    Dave Foo Guest

    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
    --
    Posted via http://www.ruby-forum.com/.
     
    Dave Foo, Jan 27, 2009
    #1
    1. Advertising

  2. Dave Foo

    Roger Pack Guest


    > 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
    --
    Posted via http://www.ruby-forum.com/.
     
    Roger Pack, Jan 28, 2009
    #2
    1. Advertising

  3. Dave Foo

    Dave Foo Guest

    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

    --
    Posted via http://www.ruby-forum.com/.
     
    Dave Foo, Jan 28, 2009
    #3
  4. 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


    --
    Posted via http://www.ruby-forum.com/.
     
    Jarmo Pertman, Jan 31, 2009
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Joe Van Dyk
    Replies:
    2
    Views:
    118
    Damphyr
    Jan 31, 2006
  2. peppermonkey
    Replies:
    1
    Views:
    268
    Gregory Brown
    Feb 10, 2007
  3. Adam Anderson
    Replies:
    1
    Views:
    147
    Adam Anderson
    Sep 19, 2007
  4. James Mead
    Replies:
    0
    Views:
    159
    James Mead
    Jan 15, 2008
  5. John Feminella
    Replies:
    0
    Views:
    260
    John Feminella
    Apr 25, 2010
Loading...

Share This Page