[openstack-dev] [oslo] Common SSH

Bhuvan Arumugam bhuvan at apache.org
Mon Jan 13 12:32:39 UTC 2014

On Fri, Jan 10, 2014 at 11:24 PM, Sergey Skripnick
<sskripnick at mirantis.com>wrote:

>  I appreciate that we want to fix the ssh client. I'm not certain that
>> writing our own is the best >answer.
> I was supposed to fix oslo.processutils.ssh with this class, but it may
> be fixed without it, not big deal.
>> In his comments on your pull request, the paramiko author recommended
>> looking at Fabric. I know that >Fabric has a long history in production.
>> Does it provide the required features?
> Fabric is too much for just command execution on remote server. Spur seems
> like
> good choice for this.

I'd go with Fabric. It support several remote server operations, file
upload/download among them. We could just import the methods we are
interested. It in turn use paramiko supporting most of ssh client options.
If we begin using fabric for file upload/download, it'll open door for more
remote server operations. Bringing in fabric as part of oslo will be cool.

A quick demo script to upload/download files using fabric.

from fabric.api import get, put, run, settings

remote_host = 'localhost'

with settings(host_string=remote_host):

    # what is the remote hostname?

    run('hostname -f')

    # download /etc/hosts file


    # upload /etc/bashrc to /tmp directory

    put('/etc/bashrc', '/tmp/bashrc')

The output may look like:

[localhost] run: hostname -f
[localhost] out: rainbow.local
[localhost] out:

[localhost] download: /Users/bhuvan/localhost/hosts <- /etc/hosts
[localhost] put: /etc/bashrc -> /tmp/bashrc

Bhuvan Arumugam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140113/8010ad10/attachment.html>

More information about the OpenStack-dev mailing list