Projet

Général

Profil

EnvoleMigration23 » Historique » Version 18

Gaston TJEBBES, 29/07/2010 16:34

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 18 Gaston TJEBBES
h3. Les fichiers de mots de passe
90 18 Gaston TJEBBES
91 18 Gaston TJEBBES
Les fichiers de mot de passe devront contenir une variable container (web est pris par défaut).
92 18 Gaston TJEBBES
Si vous utilisez des scripts de pre et post update, ceux-ci doivent se trouver dans le container maître.
93 18 Gaston TJEBBES
94 9 Gaston TJEBBES
h3. Impact des modifications 
95 14 Gaston TJEBBES
96 10 Gaston TJEBBES
* Les dicos contiennent les chemins vers les fichiers .sql
97 1 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);
98 18 Gaston TJEBBES
* le Makefile doit tenir compte des modifications. (ça doit être à peu près tout en attendant la modification de eole-mysql);
99 18 Gaston TJEBBES
* Rajouter la variable container dans les fichiers (.ini) de modification de mot de passe.
100 15 Gaston TJEBBES
101 17 Gaston TJEBBES
h3. Mysql en ligne de commande
102 17 Gaston TJEBBES
103 17 Gaston TJEBBES
Pour utiliser la commande mysql dans un script bash, il faut faire comme suit :
104 17 Gaston TJEBBES
<pre>
105 17 Gaston TJEBBES
# Cette ligne ci permet de charger les adresses/chemins des containers
106 17 Gaston TJEBBES
. /etc/eole/containers.conf
107 17 Gaston TJEBBES
echo "Update matable set ..." |  mysql --defaults-file=$container_path_mysql/etc/mysql/debian.cnf -h$container_ip_mysql 
108 17 Gaston TJEBBES
</pre>
109 17 Gaston TJEBBES
110 17 Gaston TJEBBES
Donc en ligne de commande, c'est pareil (ou presque)
111 17 Gaston TJEBBES
<pre>
112 17 Gaston TJEBBES
. /etc/eole/containers.conf
113 17 Gaston TJEBBES
mysql -uroot -ppassword -h$container_ip_mysql
114 17 Gaston TJEBBES
</pre>
115 17 Gaston TJEBBES
116 15 Gaston TJEBBES
h2. L'arbre des dépendances
117 15 Gaston TJEBBES
118 15 Gaston TJEBBES
Il va falloir réfléchir aux meta paquets :
119 15 Gaston TJEBBES
* envole-pkg;
120 15 Gaston TJEBBES
* envole-extras-pkg.