Projet

Général

Profil

EnvoleMigration23 » Historique » Version 17

« Précédent - Version 17/40 (diff) - Suivant » - Version actuelle
Gaston TJEBBES, 29/07/2010 15:57


Migration d'Envole vers la version Eole2.3

Les étapes :
  • Mettre les dictionnaires à jour;
  • Renommer éventuellement les variables pour revenir à quelque chose de standardisé;
  • Séparer les paquets conf des paquets applications (container cible différent);
  • Mettre les conf sql au gout du jour.

Les choses en vrac :

  • Renommer toutes les variables qui se nomme posh... en envole...;
  • Revoir les adresses localhost ou 127.0.0.1 (ldap et mysql ne sont plus joignables par ces adresses);
  • Avoir une structure de dépendances cohérente (le sso est sur le maître, pas dans le container web ...);
  • Le nom de domaine s'appelle désormais web_domain au lieu de posh_url ou envole_url ...;
  • Revoir l'utilisation des répertoires de /home discussion entamée avec Manu (il est possible de fournir un template qui indique à bacula les rep à sauvegarder);
  • Un maximum de manipulation doivent être effectuées depuis le master (script de configuration / synchro ...), cela évite de demander à un utilisateur de se connecter sur un container.

Étape 1 : le dictionnaire

Dans le dictionnaire, il faut :
  • Identifier les fichiers qui vont dans le master et ceux qui vont dans le container web (gibii peut être pris en exemple);
  • Penser à mettre le package nomdelappli-apps pour qu'il soit tiré dans le conteneur (nomdelappli-apps);
  • Renommer éventuellement les variables (scribe_envole_nomdelappli);
  • Revoir les chemins vers les fichiers .sql qui sont templatisés (cf étape 4).

Étape 2 : les templates

Les modifications à apporter au templates :
  • le renommage de variable entraîne logiquement des changements;
  • la modification des adresses des services (ldap n'est plus sur le master, ftp non plus)
  • Certaines variables ont été renommées :
    • le nom de domaine est fournit par une variable unique : web_domain (fournit par le paquet eole-web)
    • l'url par défaut d'accès est fournit par la variable : web_default (fournit par le paquet eole-web)
    • l'adresse du serveur mysql est fournit par : adresse_ip_mysql (fournit par le paquet eole-mysql)
    • l'adresse du serveur ldap est fournit par : adresse_ip_fichier (fournit par le paquet eole-fichier)

Étape 3: la division des paquets

Il faut désormais deux paquets pour une application :
  • eole-nomdelappli contient les templates, les dictionnaires, scripts de configuration et s'installe dans le container master;
  • nomdelappli-apps contient l'application elle-même et s'installe dans le container web.
Il faut modifier :
  • debian/compat et mettre 5 au lieu de 4;
  • debian/control pour décrire le paquet source et ses paquets binaires;
  • debian/rules pour que DESTDIR ne contienne plus le nom du paquet;
  • Makefile pour la séparation des paquets.
NB 1 les dépendances :
  • eole-monappli doit avoir eolebase-minimal dans ses deps, éventuellement eole-sso, eole-mysql
  • monappli-apps doit avoir web-pkg dans ses dépendances

NB 2 DESTDIR dans le makefile :
Une fois la modification faite dans le fichier debian/rules, le DESTDIR obtenu dans le Makefile doit être concaténé pour former les DESTDIR des deux paquets binaires. (C'est comme cela que l'on fait plusieurs paquets avec un seul Makefile :-))
Ex :

EOLE_GIBII_DESTDIR=$(DESTDIR)/eole-gibii
GIBII_APPS_DESTDIR=$(DESTDIR)/gibii-apps

Étape 4 : Mysql

La gestion des bases de données mysql doit être revue (où quand, comment) ?

Un soucis rencontré jusqu'à présent est la difficulté à retrouver les fichiers .sql.
Voici une proposition de nomenclature envisagée pour placer les fichiers.

Fichier de configuration

Les fichiers ont la même destination, on peut imaginer une structure comme celle-ci


fichier dans le dépot                        ->    fichier sur le serveur

mysql/conf/gen/monappli.py                   ->   /usr/share/eole/applications/gen/monappli.py
mysql/conf/passwords/monappli.ini            ->   /usr/share/eole/applications/passwords/monappli.ini
mysql/conf/updates/config.py                 ->   /usr/share/eole/applications/updates/.../config.py

Les fichiers .sql

mysql/files/gen/fichiers.sql                 ->   /usr/share/eole/mysql/<nomdelappli>/gen/fichiers.sql
mysql/files/updates/fichiers.sql             ->   /usr/share/eole/mysql/<nomdelappli>/updates/fichiers.sql

Impact des modifications

  • Les dicos contiennent les chemins vers les fichiers .sql
  • Les fichiers de configuration de génération et d'updates doivent être mis au goût du jour (chemin vers les fichiers sql);
  • le Makefile doit tenir compte des modifications. (ça doit être à peu près tout en attendant la modification de eole-mysql).

Mysql en ligne de commande

Pour utiliser la commande mysql dans un script bash, il faut faire comme suit :

# Cette ligne ci permet de charger les adresses/chemins des containers
. /etc/eole/containers.conf
echo "Update matable set ..." |  mysql --defaults-file=$container_path_mysql/etc/mysql/debian.cnf -h$container_ip_mysql 

Donc en ligne de commande, c'est pareil (ou presque)

. /etc/eole/containers.conf
mysql -uroot -ppassword -h$container_ip_mysql

L'arbre des dépendances

Il va falloir réfléchir aux meta paquets :
  • envole-pkg;
  • envole-extras-pkg.