Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 33 additions & 8 deletions docs/scenarios/admin.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,31 +10,56 @@ fabric is more focused on application level tasks such as deployment.

Install Fabric:

::
.. code-block:: bash

pip 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.
The following code will create two tasks that we can use: ``memory_usage`` and
``deploy``. The former will output the memory usage on each machine. The
latter will ssh into each server, 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 memory_usage():
run('free -m')

@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.
With the previous code saved in a file named fabfile.py, we can check memory
usage with:

::
.. code-block:: bash

$ fab memory_usage
[my_server1] Executing task 'memory'
[my_server1] run: free -m
[my_server1] out: total used free shared buffers cached
[my_server1] out: Mem: 6964 1897 5067 0 166 222
[my_server1] out: -/+ buffers/cache: 1509 5455
[my_server1] out: Swap: 0 0 0

[my_server2] Executing task 'memory'
[my_server2] run: free -m
[my_server2] out: total used free shared buffers cached
[my_server2] out: Mem: 1666 902 764 0 180 572
[my_server2] out: -/+ buffers/cache: 148 1517
[my_server2] out: Swap: 895 1 894

and we can deploy with:

.. code-block:: bash

$ fab deploy

Expand Down