Code Monkey home page Code Monkey logo

fabric's Introduction

Fabric3 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. This is a fork of the original Fabric (git) with the intention of providing support for Python3, while maintaining support for all non-archaic versions if Python2. Please see below for known differences with the upstream version of Fabric. To switch to Fabric3, simply do:

pip uninstall Fabric
pip install Fabric3

... and don't forget to update any requirements.txt files accordingly:

# Fabric==1.10.2
Fabric3==1.10.2.post1

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

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, Fabric3'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 Fabric3 itself uses.)

Differences with Fabric

Generally this project aims to be a drop-in replacement for Fabric and will periodically merge any changes from the upstream project. Any differences are noted here:

  • The release installs as Fabric3. Despite it's name, this version is tested with Python2.7 and Python 3.4+.
  • Versioning is based on upstream Fabric releases, with a postX appended. So version "1.10.2.post1" is equivalent to Fabrics own "1.10.2" release.
  • In Python3, Fabric3 implements its own version of contextlib.nested based on contextlib.ExitStack, since it's no longer available in Python3. Please note that it was removed with good reason, we do not encourage you use it.
  • Fabric3 requires the six library for compatability.
  • Minimum requirements for paramiko have been bumped to 1.15.3.

fabric's People

Contributors

akitada avatar alex avatar alisaifee avatar asmeurer avatar bitprophet avatar calebgroom avatar chrisvest avatar cmattoon avatar davidhalter avatar ericholscher avatar fgmacedo avatar focusaurus avatar goosemo avatar hgdeoro avatar konradhalas avatar lundberg avatar mathiasertl avatar matthewwithanm avatar max-arnold avatar msabramo avatar mw44118 avatar nicktimko avatar offbyone avatar opie4624 avatar owenn avatar rasky avatar rsaikali avatar sophacles avatar stnatic avatar tswicegood avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.