Aller au contenu. | Aller à la navigation

Outils personnels

Navigation

Vous êtes ici : Accueil / Wiki / script makebuildout

script makebuildout

script python pour générer un buildout de production à partir de fichier "modèle"

Contexte

La création d'un buildout de production avec un certain nombre d'instances zope qui seront servies par un serveur nginx en passant par un gestionnaire de cache, varnish et des statistiques servies par awstats.

 

Cette configuration peut se faire grâce à des macros dans le buildout. Mais le système de macro a ses limites (ici on génère des variables dans des fichiers utilisés par le buildout à partir de données sous forme d'un fichier csv : il faudrait imaginer un nouveau projet collective.recipe.csvgen[+] pour créer une recette de buildout qui fasse ce que fait le script makebuild.py => générer des variables de config à partir d'un fichier csv), ce qui imposent de garder plusieurs endroits où il faut mettre à jour des variables dans les fichiers buildout.

Pour palier rapidement à ce manque dans le buildout, j'ai généré un script python makebuild.py qui lit un fichier csv et génère à partir de fichiers "template" des fichiers de configurations utilisés par le buildout.

Sur Waatweb.com (serveur des instances institutionnelles)

Quand on change le fichier csv contenant la config d'une instance (voire plusieurs, si le buildout gère plusieurs instances), il faut:

  1. relancer le script de préconfiguration des fichiers de buildout : makebuild.py
  2. relancer le buildout pour la régénération des fichiers de configuration du cache (varnish) et du main (nginx) (éventuellement de haproxy, si on fait du zeo)
  3. relancer le cache et le main (éventuellement le haproxy)
plone@sd-25347:~/p4.1.2/sismondi$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import makebuild
>>> makebuild.makebuildout('/home/plone/p4.1.2/sismondi','/home/plone/p4.1.2/sismondi/instances.csv','/etc/awstats')
>>>
plone@sd-25347:~/p4.1.2/sismondi$ bin/buildout -c prod.cfg install cache main

Ex: pour redémarrer le cache on va sur https://sup-sismondi.waatweb.com, et pour le main : http://waatweb.com:12000