Beispiel¶
- Authors:
Christian Theune
Jens Vagelpohl
Michael Hierweck
Stephan Diehl
Veit Schiele
- Date:
2012-05-23
Siehe auch Service Deployment Cheicklist
Komponenten¶
- 1 Nginx
- 1 haproxy
- N Django-Anwendung mit gunicorn cron-jobs
- | |
1 memcached PostgreSQL-DB
Empfohlener Zuschnitt¶
Production
00 Frontend: nginx, haproxy
01 Datenbank: memcache, postgresql
02 cron-jobs
10+ app-server
Test
00 Frontend: nginx, haproxy
01 Datenbank: memcache, postgresql
02 app-server cron-jobs
bin/batou-localfür lokales Deployment
bin/batou-remotefür Deployment auf verschiedene Server
bin/secretseditzum Bearbeiten der verschlüsselten Zugangsdaten
Voraussetzung von batou ist ein Mercurial-Projekt
z3c.pypimirror um zu gewährleisten, dass exteren Abhängigkeiten auch später noch verfügbar sind.
Das manage.py-Skript von Django nutzt jedoch immer /usr/bin/env python. Wir benötigen jedoch unabhängige Angaben zur Umgebung. Daher erstellen wir eine Datei setings_general.py.
$ hg clone https://bitbucket.org/ctheune/sprintsite sprintsite
$ cd sprintsite/
$ python2.7.3 bootstrap.py
$ ./bin/buildout
$ ./bin/batou-local dev-ctheune localhost
Updating Supervisor > Buildout > File(buildout.cfg) > Content(buildout.cfg)
Updating Supervisor > Buildout > Bootstrap
Updating Supervisor > Buildout
Updating Supervisor
Updating Django > Buildout > VirtualEnv(2.7)
Updating Django > Buildout > Bootstrap
Updating Django > Buildout