oula 2 articles en une semaine.
On va faire un Buildout de Zope2 et Plone3.
Pour faire simple, Buildout va nous permettre de créer un environnement fonctionnel via un fichier de configuration .
Pour de plus amples informations, rendez-vous ici.
Comment ça marche ?
On va d'abord devoir l'installer, rien de bien compliqué :
# easy_install-2.4 zc.buildout
Voilà.Maintenant on va créer notre dossier qui va contenir tout ce dont Buildout à besoin afin de pouvoir créer un environnement :
$ mkdir test & cd test
Tout est prêt, nous manque plus qu'à initialiser Buildout :
$ buildout init
Et c'est fini.
Dans notre dossier test, le fichier buildout.cfg est apparu : c'est à partir de celui-ci que l'on va pouvoir installer nos applis.
buildout.cfg
Voilà le contenu de buildout.cfg :
[buildout]
parts =
[buildout] est la seule section obligatoire.
On veut installer zope2 et Plone3, donc on va créer 3 sections que l'on va appelées dans parts.
Voilà ce que ça donne :
[buildout]
parts =
zope2
plone3
instance1
[zope2]
[plone3]
[instance1]
On remplira les sections tout à l'heure.
Il nous faut avant tout un module : elementtree.
Pour installer simplement un module, il suffit de rajouter dans [buildout] eggs, suvi du module à installer [il faut que ce module(egg) soit disponible au cheeseshop ] :
[buildout]
eggs =
elementree
parts =
zope2
plone3
[zope2]
[plone3]
[instance1]
capiche?
Bon place à [zope2] :
[zope2]recipe = plone.recipe.zope2install
url = ${plone3:zope2-url}
C'est assez court.
recipe indique que l'on va construire zope2 via plone.recipe.zope2install .
url quant à lui, indique l'url pour télécharger zope2 (ici elle va être spécifiée par la section plone3)
Et maintenant [plone3] :
[plone3]
recipe = plone.recipe.plone
recipe indique qu'il va télécharger et construire plone3 via plone.recipe.plone .
Puis [instance1], qui comme son nom l'indique, va nous créer une instance de notre serveur :
[instance1]
recipe = plone.recipe.zope2instance
zope2-location = ${zope2:location}
user = admin:admin
http-address = 8080
debug-mode = on
verbose-security = on
products =
${plone3:products}
eggs =
${buildout:eggs}
${plone3:eggs}
On va se servir de plone.recipe.zope2instance pour construire notre instance.
zope2-location indique le chemin vers Zope2 . C'est notre section [zope2] qui le détient.
Ensuite c'est de la config de Zope :
user : nous permet de définir un admin.
http-adress : le port du serveur
etc...
products contient les chemins de tous les produits.
Dans cet exemple, nous n'avons que les produits installés par plone3 .
eggs contient les chemins de tous les eggs.
Maintenant on peut lancer le buildout via :
$ ./bin/buildout
Puis lancer notre instance par :
$ ./bin/instance1
Et voilà.
Voici le fichier complet :
[buildout]
eggs =
elementtree
parts =
zope2
plone3
instance1
[zope2]
recipe = plone.recipe.zope2install
url = ${plone3:zope2-url}
[plone3]
recipe = plone.recipe.plone
[instance1]
recipe = plone.recipe.zope2instance
zope2-location = ${zope2:location}
user = admin:admin
http-address = 8080
debug-mode = on
verbose-security = on
products =
${plone3:products}
eggs =
${buildout:eggs}
${plone3:eggs}
Autre
On peut récupérer des produits/eggs par svn, ca marche de la même manière qu'ici : on rajoute une section,etc...
On peut aussi récupérer des buildouts tout prêt sur le net, par exemple sur le svn de plone.