Una configurazione di produzione
medio
Per finire diamo uno sguardo ad una configurazione più avanzata, adeguata ad un ambiente di produzione. Salva questo file come deployment.cfg nella root del buildout vicino al file principale 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 =
optilux.policy
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.1.1.tar.gz
[varnish-instance]
recipe = plone.recipe.varnish:instance
bind = 127.0.0.1:8081
backends = 127.0.0.1:8080
cache-size = 1G
Eccoci qua:
- Stiamo referenziando il file principale buildout.cfg, estendendolo e facendo override con una configurazione più appropriata ad un ambiente di produzione.
- Stiamo predisponendo uno ZEO server con due istanze client, primary e secondary (vedi plone.recipe.zope2zeoserver e plone.recipe.zope2instance per maggiori dettagli)
- Stiamo compilando il cache server Varnish (vedi plone.recipe.varnish per ulteriori dettagli).
Combinando i file di configurazione di buildout in questo modo, potrai creare configurazioni mirate per diversi scenari di produzione. Per imparare di più riguardo le funzioni avanzate di buildout studia la sua documentazione.
Per costruire questo ambiente devi esplicitamente specificare un file di configurazione:
$ ./bin/buildout -c deployment.cfg
Per avviare Zope e Plone, dovrai avviare il server ZEO, i due client (o almeno quello primario), e il server Varnish:
$ ./bin/zeoserver start $ ./bin/primary start $ ./bin/secondary start $ ./bin/varnish-instance
Le ricette creano anche gli script per effettuare il backup dello ZODB (in ./bin/repozo) e per il pack del database (in ./bin/zeopack).
Opzioni ulteriori
zc.buildout è un sistema molto flessibile. Risulta piuttosto semplice creare nuove ricette, e potrai combinare ricette esistenti in modo molto potente. Cerca "buildout" nel Cheese Shop per trovare altre ricette, o dai uno sguardo al codice sorgente per alcune delle ricette di Plone per capire come vengono generate.
