Adding Fabric overview and example

This commit is contained in:
Steve Pulec
2011-12-30 13:28:48 -05:00
parent 8b2510988b
commit dbb1ec6488
+35 -1
View File
@@ -4,7 +4,41 @@ 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 env, cd, run, prefix
env.hosts = ['my_server1', 'my_server2']
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
----