Another Fabric Tutorial

I’ve been playing with  Python here and at the same time Fabric v.0.9 for simple deployment. This is a handy tool to manage several servers for application development,testing and production.

The code below is save to a file named

# Works with fabric v0.9
from fabric.api import run, env
from fabric.operations import local,put

def dev_server():
env.user = 'user_name'
env.hosts = ['']

def staging_server():
env.user = 'user_name'
env.hosts = ['']

def production_server():
env.user = 'user_name'
env.hosts = ['', '' ]

# define needed functions here.
def host_info():
print 'Checking lsb_release of host: ',
run('lsb_release -a')

def uptime():

def simple_deploy():
put ('/tmp/testfile','/tmp')
# add deployment codes here

This assumes we can login to any of the server w/o ssh keypair.
See this link for setting up SSH without password.

Tip: Also if you have different keypair for each servers(dev,staging,production), you can add keypair using the command ssh-add.

Now let’s try, checking for uptime of the servers.

prompt> fab --list
prompt> fab dev_server uptime
prompt> fab production_server uptime

Deploying a file(but can be any web application). In this case the file to be uploaded is /tmp/testfile to /tmp of the production servers.

prompt> fab production_server simple_deploy

SSH Without Password
Fabic 0.9.0 Documentation

Other Alternatives:
Puppet Labs

If you need consulting services in setting up your servers or deployment process, you can drop me a mail. 😉

Leave a Reply

Your email address will not be published. Required fields are marked *