Fabric

From air
Jump to navigation Jump to search

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


Install

sudo apt-get -y install python-pip
sudo apt-get -y install fabric
git clone https://github.com/warner/python-ecdsa.git
cd python-ecdsa/
sudo python setup.py install
cd ..
sudo rm -fr python-ecdsa
fab -V


Test

mkdir fabrictest
cd fabrictest
cat <<EOF > fabfile.py
def hello(name="world"):
    print("Hello %s!" % name)
EOF
fab --list
fab hello
fab hello:name=Jeff
fab hello:Jeff


Test Remote

cat <<EOF > fabfile.py
from __future__ import with_statement
from fabric.api import *
# from fabric.contrib.console import confirm

env.hosts = ['host1', 'host2']

code_dir = '~/fabrictest'

@parallel
def start():
    with cd(code_dir):
        run("./start.sh")

@parallel
def stop():
    with cd(code_dir):
        run("./stop.sh")
EOF

fab -i remotehost.pem start


Misc