Skip to content

ploxiln/fab-classic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

bcc584f · Dec 1, 2018
Dec 1, 2018
Jun 7, 2018
Nov 27, 2018
Jun 7, 2018
Jun 6, 2018
Nov 27, 2018
Aug 11, 2014
Apr 7, 2016
Apr 13, 2014
Aug 4, 2014
Jan 1, 2017
Apr 7, 2014
Jun 9, 2018
Jun 11, 2018
Aug 22, 2016
Jun 7, 2018
Jun 6, 2018
Dec 5, 2016

Repository files navigation

fab-classic is a Python (2.7 or 3.4+) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.

fab-classic is forked from Fabric-1.14 and is intended to add only bug fixes and compatibility patches, for projects already using Fabric-1.x in some way. It includes python3 compatibility patches from Fabric3.

Upstream Fabric is now on version 2.x. Fabric-2.x is python3 compatible, and comes after Fabric3. Fabric-2.x has significant compatibility-breaking changes, in order to fix some long-standing limitations.

You probably should not use this for new projects, in that case you should consider Fabric-2.x - see http://www.fabfile.org/


fab-classic is on PyPI, so you can pip install fab-classic

https://travis-ci.org/ploxiln/fab-classic.svg?branch=master

Changelog: https://github.com/ploxiln/fab-classic/releases

API Documentation: http://docs.fabfile.org/en/1.14/

For a quick command reference, run fab --help


fab-classic provides a basic suite of operations for executing local or remote shell commands (normally or via sudo) and uploading/downloading files, as well as auxiliary functionality such as prompting the running user for input, or aborting execution.

Typical use involves creating a Python module containing one or more functions, then executing them via the fab command-line tool. Below is a small but complete "fabfile" containing a single task:

from fabric.api import run

def host_type():
    run('uname -s')

If you save the above as fabfile.py (the default module that fab loads), you can run the tasks defined in it on one or more servers, like so:

$ fab -H localhost,linuxbox host_type
[localhost] run: uname -s
[localhost] out: Darwin
[linuxbox] run: uname -s
[linuxbox] out: Linux

Done.
Disconnecting from localhost... done.
Disconnecting from linuxbox... done.

In addition to use via the fab tool, Fabric's components may be imported into other Python code, providing a Pythonic interface to the SSH protocol suite at a higher level than that provided by e.g. the Paramiko library (which Fabric itself uses).