Hébergement VDS OpenERP par SISalp : Installer le logiciel avec buildout à la mode Anybox
Par SISalp le mardi 20 août 2013, - Télécharger et installer Odoo - Lien permanent
Buildout est un outil utilisé par des développeurs python pour installer des applications. Certains intégrateurs d'OpenERP l'utilisent à l'instar de Anybox qui publie une documentation et des paramétrages types.
Cet article traite de l'utilisation de cet outil dans le contexte d'un hébergement d'OpenERP sur un VDS de SISalp. Les intégrateurs qui utilisent la recette buildout d'Anybox ou qui ont adapté des recettes propres à leurs options, peuvent transférer directement une configuration dans le contexte de l'hébergement VDS de leur client.
Les utilisateurs de Tryton préfereront probablement la directive environment: qui installe directement un serveur Tryton, Tryton+Nereid ou Gnu_Health sans avoir à réaliser une recette buildout.
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.