Projet

Général

Profil

EnvoleMigration23 » Historique » Version 17

Gaston TJEBBES, 29/07/2010 15:57

1 15 Gaston TJEBBES
h1. Migration d'Envole vers la version Eole2.3
2 1 Gaston TJEBBES
3 10 Gaston TJEBBES
{{toc}}
4 10 Gaston TJEBBES
5 9 Gaston TJEBBES
Les étapes :
6 9 Gaston TJEBBES
* Mettre les dictionnaires à jour;
7 9 Gaston TJEBBES
* Renommer éventuellement les variables pour revenir à quelque chose de standardisé;
8 9 Gaston TJEBBES
* Séparer les paquets conf des paquets applications (container cible différent);
9 9 Gaston TJEBBES
* Mettre les conf sql au gout du jour.
10 1 Gaston TJEBBES
11 10 Gaston TJEBBES
h2. Les choses en vrac : 
12 1 Gaston TJEBBES
13 9 Gaston TJEBBES
* Renommer toutes les variables qui se nomme posh... en envole...;
14 16 Gaston TJEBBES
* Revoir les adresses localhost ou 127.0.0.1 (ldap et mysql ne sont plus joignables par ces adresses);
15 9 Gaston TJEBBES
* Avoir une structure de dépendances cohérente (le sso est sur le maître, pas dans le container web ...);
16 9 Gaston TJEBBES
* Le nom de domaine s'appelle désormais web_domain au lieu de posh_url ou envole_url ...;
17 9 Gaston TJEBBES
* 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);
18 9 Gaston TJEBBES
* 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.
19 1 Gaston TJEBBES
20 9 Gaston TJEBBES
h2. Étape 1 : le dictionnaire
21 1 Gaston TJEBBES
22 9 Gaston TJEBBES
Dans le dictionnaire, il faut : 
23 9 Gaston TJEBBES
* Identifier les fichiers qui vont dans le master et ceux qui vont dans le container web (gibii peut être pris en exemple);
24 1 Gaston TJEBBES
* Penser à mettre le package nomdelappli-apps pour qu'il soit tiré dans le conteneur (nomdelappli-apps);
25 16 Gaston TJEBBES
* Renommer éventuellement les variables (scribe_envole_nomdelappli);
26 9 Gaston TJEBBES
* Revoir les chemins vers les fichiers .sql qui sont templatisés (cf étape 4).
27 9 Gaston TJEBBES
28 1 Gaston TJEBBES
h2. Étape 2 : les templates
29 1 Gaston TJEBBES
30 10 Gaston TJEBBES
Les modifications à apporter au templates :
31 10 Gaston TJEBBES
* le renommage de variable entraîne logiquement des changements;
32 10 Gaston TJEBBES
* la modification des adresses des services (ldap n'est plus sur le master, ftp non plus)
33 10 Gaston TJEBBES
* Certaines variables ont été renommées :
34 10 Gaston TJEBBES
** le nom de domaine est fournit par une variable unique : web_domain (fournit par le paquet eole-web)
35 1 Gaston TJEBBES
** l'url par défaut d'accès est fournit par la variable : web_default (fournit par le paquet eole-web)
36 16 Gaston TJEBBES
** l'adresse du serveur mysql est fournit par : adresse_ip_mysql      (fournit par le paquet eole-mysql)
37 16 Gaston TJEBBES
** l'adresse du serveur ldap est fournit par  : adresse_ip_fichier    (fournit par le paquet eole-fichier)
38 1 Gaston TJEBBES
39 9 Gaston TJEBBES
h2. Étape 3:  la division des paquets
40 1 Gaston TJEBBES
41 9 Gaston TJEBBES
Il faut désormais deux paquets pour une application :
42 9 Gaston TJEBBES
* eole-nomdelappli contient les templates, les dictionnaires, scripts de configuration et s'installe dans le container master;
43 9 Gaston TJEBBES
* nomdelappli-apps contient l'application elle-même et s'installe dans le container web.
44 1 Gaston TJEBBES
45 9 Gaston TJEBBES
Il faut modifier : 
46 9 Gaston TJEBBES
* debian/compat et mettre 5 au lieu de 4;
47 9 Gaston TJEBBES
* debian/control pour décrire le paquet source et ses paquets binaires;
48 9 Gaston TJEBBES
* debian/rules pour que DESTDIR ne contienne plus le nom du paquet;
49 9 Gaston TJEBBES
* Makefile pour la séparation des paquets.
50 1 Gaston TJEBBES
51 9 Gaston TJEBBES
NB 1 les dépendances : 
52 9 Gaston TJEBBES
* eole-monappli doit avoir eolebase-minimal dans ses deps, éventuellement eole-sso, eole-mysql
53 9 Gaston TJEBBES
* monappli-apps doit avoir web-pkg dans ses dépendances
54 1 Gaston TJEBBES
55 9 Gaston TJEBBES
NB 2 DESTDIR dans le makefile :
56 9 Gaston TJEBBES
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 :-))
57 9 Gaston TJEBBES
Ex : 
58 9 Gaston TJEBBES
<pre>
59 9 Gaston TJEBBES
EOLE_GIBII_DESTDIR=$(DESTDIR)/eole-gibii
60 9 Gaston TJEBBES
GIBII_APPS_DESTDIR=$(DESTDIR)/gibii-apps
61 9 Gaston TJEBBES
</pre>
62 7 Gaston TJEBBES
63 9 Gaston TJEBBES
h2. Étape 4 : Mysql
64 8 Gaston TJEBBES
65 1 Gaston TJEBBES
La gestion des bases de données mysql doit être revue (où quand, comment) ?
66 8 Gaston TJEBBES
67 8 Gaston TJEBBES
Un soucis rencontré jusqu'à présent est la difficulté à retrouver les fichiers .sql.
68 8 Gaston TJEBBES
Voici une proposition de nomenclature envisagée pour placer les fichiers.
69 8 Gaston TJEBBES
70 8 Gaston TJEBBES
h3. Fichier de configuration
71 8 Gaston TJEBBES
72 8 Gaston TJEBBES
Les fichiers ont la même destination, on peut imaginer une structure comme celle-ci
73 13 Gaston TJEBBES
<pre>
74 12 Gaston TJEBBES
75 8 Gaston TJEBBES
fichier dans le dépot                        ->    fichier sur le serveur
76 8 Gaston TJEBBES
77 8 Gaston TJEBBES
mysql/conf/gen/monappli.py                   ->   /usr/share/eole/applications/gen/monappli.py
78 7 Gaston TJEBBES
mysql/conf/passwords/monappli.ini            ->   /usr/share/eole/applications/passwords/monappli.ini
79 1 Gaston TJEBBES
mysql/conf/updates/config.py                 ->   /usr/share/eole/applications/updates/.../config.py
80 11 Gaston TJEBBES
</pre>
81 9 Gaston TJEBBES
82 1 Gaston TJEBBES
h3. Les fichiers .sql 
83 10 Gaston TJEBBES
84 11 Gaston TJEBBES
<pre>
85 1 Gaston TJEBBES
mysql/files/gen/fichiers.sql                 ->   /usr/share/eole/mysql/<nomdelappli>/gen/fichiers.sql
86 7 Gaston TJEBBES
mysql/files/updates/fichiers.sql             ->   /usr/share/eole/mysql/<nomdelappli>/updates/fichiers.sql
87 11 Gaston TJEBBES
</pre>
88 7 Gaston TJEBBES
89 10 Gaston TJEBBES
h3. Impact des modifications 
90 9 Gaston TJEBBES
91 14 Gaston TJEBBES
* Les dicos contiennent les chemins vers les fichiers .sql
92 10 Gaston TJEBBES
* Les fichiers de configuration de génération et d'updates doivent être mis au goût du jour (chemin vers les fichiers sql);
93 1 Gaston TJEBBES
* le Makefile doit tenir compte des modifications. (ça doit être à peu près tout en attendant la modification de eole-mysql).
94 15 Gaston TJEBBES
95 17 Gaston TJEBBES
h3. Mysql en ligne de commande
96 17 Gaston TJEBBES
97 17 Gaston TJEBBES
Pour utiliser la commande mysql dans un script bash, il faut faire comme suit :
98 17 Gaston TJEBBES
<pre>
99 17 Gaston TJEBBES
# Cette ligne ci permet de charger les adresses/chemins des containers
100 17 Gaston TJEBBES
. /etc/eole/containers.conf
101 17 Gaston TJEBBES
echo "Update matable set ..." |  mysql --defaults-file=$container_path_mysql/etc/mysql/debian.cnf -h$container_ip_mysql 
102 17 Gaston TJEBBES
</pre>
103 17 Gaston TJEBBES
104 17 Gaston TJEBBES
Donc en ligne de commande, c'est pareil (ou presque)
105 17 Gaston TJEBBES
<pre>
106 17 Gaston TJEBBES
. /etc/eole/containers.conf
107 17 Gaston TJEBBES
mysql -uroot -ppassword -h$container_ip_mysql
108 17 Gaston TJEBBES
</pre>
109 17 Gaston TJEBBES
110 15 Gaston TJEBBES
h2. L'arbre des dépendances
111 15 Gaston TJEBBES
112 15 Gaston TJEBBES
Il va falloir réfléchir aux meta paquets :
113 15 Gaston TJEBBES
* envole-pkg;
114 15 Gaston TJEBBES
* envole-extras-pkg.