Utiliser buildout sur un serveur VDS

Pour l'utilisation de buildout, vous pouvez vous référer à la documentation suivante : https://pypi.python.org/pypi/anybox.recipe.openerp

Dans le contexte d'un serveur VDS, nous allons d'abord appliquer cette procédure pour installer le logiciel OpenERP sur le service appelé "test-aaaa-nnn", aaaa-nnn correspondant à votre référence de contrat d'hébergement. Rappel: les commandes xoe s'exécutent sous l'utilisateur sisalpuser, pas sous root.

Vous pouvez modifier la configuration initiale du service test-aaaa-nnn par la commande

xoe --config -edit

La syntaxe des directives est documentée dans le fichier.

Supprimer l'installation antérieure du code du service test-aaaa-nnn si elle existe

S'il n'y a pas eu d'installation antérieure du service test-aaaa-nnn, reportez vous au paragraphe suivant.

Arrêter le service test-aaaa-nnn si besoin

$ xoe --stop test-aaaa-nnn

$ rm -r /home/sisalpuser/openerp/test-aaaa-nnn

Puis éditer la configuration de xoe afin de commenter, si elles existent, par un signe # en début de ligne, les lignes qui commencent par :

  • environnement:test-aaaa-nnn:

ainsi que les lignes qui commencent par directory:, un type de répertoire (server, specific,...) :test-aaaa-nnn: par exemple :

  • directory:server:test-aaaa-nnn:
  • directory:addons:test-aaaa-nnn:
  • directory:extra-addons:test-aaaa-nnn:
  • directory:web:test-aaaa-nnn:
  • directory:specific:test-aaaa-nnn:

Créez votre configuration buildout et déclarez la

Créez votre fichier de configuration buildout correspondant à votre installation, puis copiez le sur le VDS dans le répertoire /home/sisalpuser/openerp/packages ou mettez le sur un site internet public ou à accès contrôlé. Configurez xoe pour qu'il applique votre configuration à votre service. Vous pouvez déclarer votre configuration buildout par la commande suivante s'il n'y a pas de configuration antérieure

$ xoe --config -new -directory -server test-aaaa-nnn buildout /home/sisalpuser/openerp/packages/path_to_buildout_configuration_file

ou, s'il faut la télécharger :

$ xoe --config -new -directory -server test-aaaa-nnn buildout http://myurl.com/path_to_buildout_configuration_file

Si le téléchargement nécessite une authentification, suivez la syntaxe indiquée par l'aide intégrée de xoe.

Vous pouvez également éditer le fichier de configuration pour ajouter cette directive, suivez la syntaxe donnée dans le fichier de configuration.

Exécutez votre installation buildout

L'exécution de buildout s'effectue par

$ xoe --directory -download test-aaaa-nnn

Si d'autres directives directory: ou environmenet: ou profile: sont déclarées, elles sont toutes exécutées en séquence.

Le démarrage du service

$ xoe --start test-aaaa-nnn

Précautions à prendre sur un serveur en production

Une fois le résultat de cette procédure testé et validé, vous pouvez souhaiter mettre à jour le service production de votre serveur VDS. Vous pouvez décider de rejouer les mêmes opérations sur le service production que sur le service test, ou bien d'effectuer la mise à jour du service production par une copie du répertoire du service test dont vous venez de vous assurer du fonctionnement correct. Pour cela suivez les étapes suivantes :

Comme pour le service test-aaaa-nnn, commentez la configuration pré-existante éventuelle de la configuration de xoe en commentant des lignes evironment: , directory: du service, puis utilisez la commande suivante :

xoe --new -directory -server production-aaaa-nnn copy_raw /home/sisalpuser/openerp/test-aaaa-nnn/server server

Arretez alors le service, puis mettez à jour le serveur de production de la façon suivante :

xoe --directory -upgrade production-aaaa-nnn

Cette action n'est pas disponible depuis l'interface graphique. Elle crée automatiquement les sauvegardes du service nécessaires pour un retour à l'état précédent.

Vérifiez que le service production est opérationnel et que les bases de données ont correctement été mises à jour.

Enfin démarrez le service normallement par

$ xoe --start production-aaaa-nnn

ou par l'interface graphique.

Retour en arrière sur le serveur de production

Si la procédure de migration ci-dessus ne vous fournit pas le résultat escompté, vous pouvez revenir à la situation précédente.

Editez la configuration afin de la remettre à l'état initial et commenter la ligne qui commence par directory:server:production-aaaa-nnn: Auto copy_raw

xoe --config -edit

Puis restaurez le code et les bases de données à l'état avant migration :

xoe --directory -downgrade production-aaaa-nnn

ou par l'interface graphique.

Limitations techniques de buildout

Intégré de cette façon, les fonctions d'administration sont opérationnelles. On note cependant sur l'interface panel d'administration que le bouton "upgrade" reste grisé.

Combinaison des directives environnement: directory: et profile

Intégrée par le script de gestion xoe, l'installation par la méthode buildout peut être combinée avec les autres fonctions d'installtion.

La directive environment: crée un environnement python dans lequel s'exécutera le service.

Les directives directory: créent une copie du code en combinant diverses origines. Pour mémoire, le code peut être installé par les méthodes suivantes qui peuvent être combinées entre elles : téléchargement d'archive (wget), téléchargement bazaar, mercurial ou git, copie locale d'une archive ou d'un répertoire, hard-link.

La directive profile: modifie le comportement de la directive directory:specific: pour l'adapter au contexte du service

La directive directory:specific: reporte automatiquement sur ce code les particularités souhaitées

Ces directives sont exécutées dans cet ordre au moment de l'installation.