Simple, Pythonic remote execution and deployment.

Jeff Forcier d9ca9cb188 Merge branch '1.5' into 1.6 6 years ago
docs 02a330493b 1.6.0 in changelog 6 years ago
fabfile a8e02d745f Fix test runner to exit correctly. 6 years ago
fabric d9ca9cb188 Merge branch '1.5' into 1.6 6 years ago
tests e0249899f0 Fix #844 6 years ago
.gitignore 2fee1a7721 Core dev team doesn't use tox.ini, let's gitignore it instead 6 years ago
.travis.yml eec237b30f Attempt to workaround 6 years ago
AUTHORS 10ba345b27 Merge branch '1.4' 6 years ago
CONTRIBUTING.rst ec13bcb4c7 Language changes + addition to guidelines 6 years ago
INSTALL 20e558f778 More pre-release cleanup. 9 years ago
LICENSE f2db8fdd89 Update LICENSE date, hurr 6 years ago fc70e6d81e Update for README rename 6 years ago
README.rst 0a060bb8ff Rename README to README.rst so it renders nicely on GitHub 6 years ago
requirements.txt 54a1a8fd2c Update requirements.txt for dev Paramiko versions 6 years ago ee1efc7f88 Bump public Paramiko requirement for file-like object transfer feature 6 years ago


Fabric is a Python (2.5 or higher) library and command-line tool for
streamlining the use of SSH for application deployment or systems
administration tasks.

It 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')

Once a task is defined, it may be run 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

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 ``ssh`` library (which Fabric itself uses.)