Friday, February 1, 2013

Automating deployments

Hi,
I'm thinking about the best way to provide automatic deployment for
the Django project I'm working on. Its a pretty big one and has lots
of dependencies, lots of SO packages, Celeryd and other daemons, SO
tweaks... and also several people will need to have installed it on
their servers (they are sysadmins, not Django developers), Therefore I
want to automate as much as possible the installation and updating
processes, to minimize their pain and also because of having
homogeneity.

As I've been a sysadmin myself for many years I've already written
some bash scripts that automates all the deployment. But in order to
make it more 'natural' I'm planning to integrate those scripts within
the Django project as management commands.

To illustrate my ultimate goal this is how I imagine the workflow:

sudo pip install django-my_project
my_project-admin.sh clone project_name path

sudo python manage.py installrequirements
sudo python manage.py setuppostgres
python manage.py syncdb
python manage.py migrate
python manage.py createsuperuser

sudo python manage.py setupapache
python manage.py collectstatic
sudo python manage.py setupceleryd
sudo python manage.py createtincserver
python manage.py updatetincd
sudo python manage.py setupfirmware
python manage.py loaddata firmwareconfig

sudo python manage.py restartservices


Any thought on this? How do you automate your deployments? I heard
about fabric lots of times but never used it. Will fabric be helpful
in my case? Does it has any advantage for writing my own scripts? Or
maybe there are already some existing tools for automating deployment
of most common services like Apache, celeryd ..,?

Many thanks!
br
--
Marc

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.

No comments:

Post a Comment