Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

Fabric tasks for Django and Amazon Web Services

Project description

Fabric tasks for Django and Amazon Web Services
***********************************************

Required arrangements
---------------------

.. note:: `django_fabfile` package should be listed in your path. It's already
in place if your are installed it using `pip install django-fabfile` from
http://pypi.odeskps.com/. But if you are working within repository, then::

export PYTHONPATH=<path-to-folder-with-django_fabfile-package>

in your shell.

Pre-run configuration
---------------------

Django settings will be checked out if environment variable
`DJANGO_SETTINGS_MODULE` configured properly. If not configured within
Django settings, then options will be taken from ./fabfile.cfg file -
copy-paste rows that should be overriden from
:download:`django_fabfile/fabfile.cfg.def <../django_fabfile/fabfile.cfg.def>`.

Example of required AWS IAM Policy
----------------------------------

For using :mod:`django_fabfile.backup` and :mod:`django_fabfile.instances`
Fabric tasks you need AWS account with following permissions:

* create-snapshot::

{
"Statement": [
{
"Sid": "Stmt1304003463574",
"Action": [
"ec2:CreateSnapshot",
"ec2:CreateTags",
"ec2:DescribeInstances",
"ec2:DescribeRegions",
"ec2:DescribeSnapshots",
"ec2:DescribeTags",
"ec2:DescribeVolumes"
],
"Effect": "Allow",
"Resource": "*"
}
]
}

* delete-snapshot::

{
"Statement": [
{
"Sid": "Stmt1306410750989",
"Action": [
"ec2:DescribeRegions",
"ec2:DescribeSnapshots",
"ec2:DeleteSnapshot"
],
"Effect": "Allow",
"Resource": "*"
}
]
}

* reboot-instance::

{
"Statement": [
{
"Sid": "Stmt1312204628195",
"Action": [
"ec2:RebootInstances"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Sid": "Stmt1312276311113",
"Action": [
"ec2:DetachVolume"
],
"Effect": "Allow",
"Resource": "*"
}
]
}

* rsync-snapshot::

{
"Statement": [
{
"Effect": "Allow",
"Action": [
"EC2:AttachVolume",
"EC2:CreateKeyPair",
"EC2:CreateVolume",
"EC2:DeleteKeyPair",
"EC2:DeleteVolume",
"EC2:DescribeAvailabilityZones",
"EC2:DescribeImages",
"EC2:DescribeKeyPairs",
"EC2:RunInstances",
"EC2:TerminateInstances"
],
"Resource": "*"
}
]
}

Backup script
-------------

.. note:: Instances and snaphots are filtered by tag "Earmarking" value
"production". This can be configured in settings - see "Pre-run
configuration" section above.

Following backup commands may be configured with crontab to run daily::

#!/bin/sh

VE=/home/backup-agent/.virtualenvs/backup

. $VE/bin/activate && \
fab -f $VE/lib/python2.6/site-packages/django_fabfile/backup.py \
backup_instances_by_tag \
trim_snapshots \
rsync_region:src_region_name=us-east-1,dst_region_name=eu-west-1 \
rsync_region:src_region_name=us-west-1,dst_region_name=eu-west-1 \
rsync_region:src_region_name=eu-west-1,dst_region_name=us-east-1

With 30 production instances it tooks around 6 hours to replicate
snapshots updates. First replication tooks much more time obviously.

Recent changes
--------------

See :doc:`changelog` for recent updates.

Licensing
---------

The product is licensed by oDesk http://www.odesk.com/ under
:download:`GNU GENERAL PUBLIC LICENSE Version 3<license.txt>` except
portions with attached inline license information like
:func:`django_fabfile.backup._trim_snapshots`.

Project details


Release history Release notifications

History Node

2013.08.29.2

History Node

2013.08.29.1

History Node

2013.08.03.1

History Node

2012.11.13.2

History Node

2012.09.17.1

History Node

2012.07.30.1

History Node

2012.07.11.1

History Node

2012.05.12.1

History Node

2012.05.02.1

History Node

2012.03.31.4

History Node

2012.03.31.3

History Node

2012.03.31.2

History Node

2012.03.31.1

History Node

2012.03.06.1

History Node

2012.03.03.1

History Node

2012.02.28.2

History Node

2012.02.28.1

History Node

2012.02.27.2

History Node

2012.02.27.1

History Node

2012.02.26.1

History Node

2012.02.23.2

History Node

2012.02.23.1

History Node

2012.02.20.3

History Node

2012.02.20.2

History Node

2012.02.20.1

History Node

2012.02.19.1

History Node

2012.02.18.1

History Node

2012.02.10.1

History Node

2012.01.30.1

History Node

2011.11.27.1

History Node

2011.11.23.1

History Node

2011.11.07.1

History Node

2011.11.04.2

History Node

2011.11.04.1

History Node

2011.10.19.1

History Node

2011.10.06.1

History Node

2011.09.29.1

History Node

2011.09.27.1

History Node

2011.09.23.1

This version
History Node

2011.09.21.2

History Node

2011.09.21.1

History Node

2011.09.15.1

History Node

2011.09.14.3

History Node

2011.09.14.2

History Node

2011.09.14.1

History Node

2011.09.07.1

History Node

2011.09.06.4

History Node

2011.09.06.3

History Node

2011.09.06.2

History Node

2011.09.02.1

History Node

2011.09.01.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
django-fabfile-2011.09.21.2.tar.gz (60.9 kB) Copy SHA256 hash SHA256 Source None Sep 21, 2011

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page