Verwalten von Projekten mit zc.buildout - Teil 9: Eine Auslieferungskonfiguration PDF Drucken E-Mail
Geschrieben von: Andreas Mantke   
Donnerstag, den 06. März 2008 um 21:59 Uhr
Wie Sie Buildout für eine Auslieferungskonfiguration verwenden.

Lassen Sie uns schließlich eine fortgeschrittenere Konfiguration nehmen, besser geeignet für eine Verteilung. Speichern Sie diese Datei als deployment.cfg in der Wurzel (root) des Buildout neben der Hauptdatei buildout.cfg:

 [buildout]   
extends =
buildout.cfg

parts =
plone
zope2
productdistros
deploymentproducts
zeoserver
primary
secondary
varnish-build
varnish-instance

[deploymentproducts]
recipe = plone.recipe.distros
urls =
http://plone.org/products/cachefu/releases/1.1/CacheFu-1.1.tgz
nested-packages =
CacheFu-1.1.tgz
version-suffix-packages =

[zeoserver]
recipe = plone.recipe.zope2zeoserver
zope2-location = ${zope2:location}
zeo-address = 8100

[primary]
recipe = plone.recipe.zope2instance
zope2-location = ${zope2:location}
zeo-client = true
zeo-address = 8100
zodb-cache-size = 5000
zeo-client-cache-size = 300MB
user = admin:admin
http-address = 8080
debug-mode = off
verbose-security = off
eggs =
${plone:eggs}
${buildout:eggs}
zcml =

products =
${buildout:directory}/products
${productdistros:location}
${deploymentproducts:location}
${plone:products}

[secondary]
recipe = plone.recipe.zope2instance
zope2-location = ${zope2:location}
zeo-client = true
zeo-address = 8100
zodb-cache-size = 5000
zeo-client-cache-size = 300MB
user = ${primary:user}
http-address = 8081
debug-mode = on
verbose-security = on
eggs = ${primary:eggs}
zcml = ${primary:zcml}
products = ${primary:products}
zope-conf-additional =
zserver-threads 1

[varnish-build]
recipe = plone.recipe.varnish:build
url = http://puzzle.dl.sourceforge.net/sourceforge/varnish/varnish-1.0.4.tar.gz

[varnish-instance]
recipe = plone.recipe.varnish:instance
bind = 127.0.0.1:8082
backends = 127.0.0.1:8080
cache-size = 1G

Bitte schön:

  • Referenzieren der Hauptdatei buildout.cfg, sie erweitern und überschreiben mit einer Konfiguration, die für eine Verteilung geeigneter ist.
  • Voreinstellen eines ZEO-Servers mit zwei Client-Instanzen, primary und secondary (sehen Sie sich hierzu plone.recipe.zope2zeoserver und plone.recipe.zope2instance zu weiteren Details an)
  • Kompilieren des Varnish-Cache-Servers (sehen Sie sich hierzu plone.recipe.varnish zu weiteren Details an).

Über das Kombinieren von Buildout-Konfigurationsdateien wie dieser, können Sie maßgeschneiderte Konfigurationen für unterschiedliche Auslieferungsszenarien erstellen. Um mehr über die erweiterten Funktionen von Buildout zu lernen, sehen Sie sich seine Dokumentation an.

Um diese Umgebung zu erstellen, müssen Sie eine Konfigurationsdatei ausdrücklich bestimmen:

 $ ./bin/buildout -c deployment.cfg   

Um Zope und Plone zu starten, müssen Sie den ZEO-Server, die zwei Clients (oder wenigstens des ersten - primary) und den Vanish-Server:

 $ ./bin/zeoserver start   
$ ./bin/primary start
$ ./bin/secondary start
$ ./bin/varnish-instance

Die Rezepturen (recipes) werden auch Skripte erstellen, um die ZODB (in ./bin/repozo) zu sichern und die Datenbank zu komprimieren (in ./bin/zeopack).

Weitere Optionen

zc.buildout ist ein sehr flexibles System. Es ist relativ einfach, neu Rezepturen (recipes) zu erstellen. Und Sie können existierende Rezepturen (recipes) auf leistungsfähige Weise kombinieren. Durchsuchen Sie den Cheese Shop for "buildout", um mehr Rezepturen (recipes) zu finden, oder werfen Sie einen Blick auf den Quelltext einiger Ploneeigener Rezepturen (recipes), um zu verstehen, wie Rezepturen (recipes) erstellt werden.