Bookmark and Share
Document Actions

Una configurazione di produzione
medio

Come usare buildout per configurare ambienti di produzione

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.

 
by Maurizio Delmonte last modified 2008-12-12 18:46
Contributors: Martin Aspeli