tags:

views:

249

answers:

1

When I run the command:

fab -H localhost host_type

I receive the following error:

[localhost] Executing task 'host_type'
[localhost] run: uname -s

Fatal error: Low level socket error connecting to host localhost: Connection refused

Aborting.

Any thoughts as to why? Thanks.

Fabfile.py

from fabric.api import run
def host_type():
    run('uname -s')

Configuration

  • Fabric 1.0a0 (installed from the most recent Github commit---b8e1b6a)
  • Paramiko 1.7.4
  • PyCrypto 2.0.1
  • Virtualenv ver 1.3.3
  • Python 2.6.2+ (release26-maint:74924, Sep 18 2009, 16:03:18)
  • Mac OS X 10.6.1
+4  A: 

The important part isn't the "low level error" part of the message - the important part is the "Connection refused" part. You'll get a "connection refused" message when trying to connect to a closed port.

The most likely scenario is that you are not running an ssh server on your machine at the time that Fabric is running. If you do

ssh localhost

you'll probably get a message similar to

ssh: connect to host localhost: Connection refused

So you'll have to go out and set up an SSH server on your computer before you can proceed with Fabric from there.

Mark Rushakoff
That's it exactly. Thanks.
Matthew Rankin
You're welcome. Thanks for introducing me to Fabric - that might come in handy for me in the near future, actually.
Mark Rushakoff
Shouldn't Fabric be smart enough not to try to connect to localhost and just use the current session?
Marco
@MarcoNo it should not. It should do exactly what it is told and not try to second-guess the programmer. `run()` is explicitly a remote (connected) operation, with all the failure modes that entails. Use `local()` instead if you want to run something locally.
Christian Vest Hansen