Merge pull request #54 from spulec/master

Adding Fabric overview and example
This commit is contained in:
Kenneth Reitz
2011-12-30 11:41:09 -08:00
+36 -1
View File
@@ -4,7 +4,42 @@ Systems Administration
Fabric
------
.. todo:: Write about Fabric
Fabric is a library for simplifying system administration tasks. While Chef
and Puppet tend to focus on managing servers and system libraries,
fabric is more focused on application level tasks such as deployment.
Install Fabric:
::
pip install fabric
The following code will ssh into both of our servers, cd to our project
directory, activate the virtual environment, pull the newest codebase,
and restart the application server.
::
from fabric.api import cd, env, prefix, run, task
env.hosts = ['my_server1', 'my_server2']
@task
def deploy():
with cd('/var/www/project-env/project'):
with prefix('. ../bin/activate'):
run('git pull')
run('touch app.wsgi')
With the previous code saved in a file named fabfile.py, we merely need to run
the following command to deploy our application to both of our servers.
::
$ fab deploy
Additional features include parallel execution, interaction with remote
programs, and host grouping.
Chef
----