Projet

Général

Profil

EnvoleMigration23 » Historique » Version 35

Benoit Vila, 20/05/2011 17:07

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 27 Benoit Vila
* Renommer éventuellement les variables (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 22 Gérald Schwartzmann
** l'adresse du serveur sso est adresse_sso (anciennement cas_domainename) ???
39 1 Gaston TJEBBES
40 9 Gaston TJEBBES
h2. Étape 3:  la division des paquets
41 1 Gaston TJEBBES
42 9 Gaston TJEBBES
Il faut désormais deux paquets pour une application :
43 9 Gaston TJEBBES
* eole-nomdelappli contient les templates, les dictionnaires, scripts de configuration et s'installe dans le container master;
44 9 Gaston TJEBBES
* nomdelappli-apps contient l'application elle-même et s'installe dans le container web.
45 1 Gaston TJEBBES
46 9 Gaston TJEBBES
Il faut modifier : 
47 9 Gaston TJEBBES
* debian/compat et mettre 5 au lieu de 4;
48 9 Gaston TJEBBES
* debian/control pour décrire le paquet source et ses paquets binaires;
49 9 Gaston TJEBBES
* debian/rules pour que DESTDIR ne contienne plus le nom du paquet;
50 21 Gérald Schwartzmann
exemple : $(MAKE) install DESTDIR=$(CURDIR)/debian/monappli devient $(MAKE) install DESTDIR=$(CURDIR)/debian/
51 9 Gaston TJEBBES
* Makefile pour la séparation des paquets.
52 1 Gaston TJEBBES
53 9 Gaston TJEBBES
NB 1 les dépendances : 
54 9 Gaston TJEBBES
* eole-monappli doit avoir eolebase-minimal dans ses deps, éventuellement eole-sso, eole-mysql
55 9 Gaston TJEBBES
* monappli-apps doit avoir web-pkg dans ses dépendances
56 1 Gaston TJEBBES
57 9 Gaston TJEBBES
NB 2 DESTDIR dans le makefile :
58 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 :-))
59 9 Gaston TJEBBES
Ex : 
60 9 Gaston TJEBBES
<pre>
61 9 Gaston TJEBBES
EOLE_GIBII_DESTDIR=$(DESTDIR)/eole-gibii
62 9 Gaston TJEBBES
GIBII_APPS_DESTDIR=$(DESTDIR)/gibii-apps
63 9 Gaston TJEBBES
</pre>
64 7 Gaston TJEBBES
65 9 Gaston TJEBBES
h2. Étape 4 : Mysql
66 8 Gaston TJEBBES
67 1 Gaston TJEBBES
La gestion des bases de données mysql doit être revue (où quand, comment) ?
68 8 Gaston TJEBBES
69 8 Gaston TJEBBES
Un soucis rencontré jusqu'à présent est la difficulté à retrouver les fichiers .sql.
70 8 Gaston TJEBBES
Voici une proposition de nomenclature envisagée pour placer les fichiers.
71 8 Gaston TJEBBES
72 8 Gaston TJEBBES
h3. Fichier de configuration
73 8 Gaston TJEBBES
74 8 Gaston TJEBBES
Les fichiers ont la même destination, on peut imaginer une structure comme celle-ci
75 13 Gaston TJEBBES
<pre>
76 12 Gaston TJEBBES
77 8 Gaston TJEBBES
fichier dans le dépot                        ->    fichier sur le serveur
78 8 Gaston TJEBBES
79 8 Gaston TJEBBES
mysql/conf/gen/monappli.py                   ->   /usr/share/eole/applications/gen/monappli.py
80 7 Gaston TJEBBES
mysql/conf/passwords/monappli.ini            ->   /usr/share/eole/applications/passwords/monappli.ini
81 1 Gaston TJEBBES
mysql/conf/updates/config.py                 ->   /usr/share/eole/applications/updates/.../config.py
82 11 Gaston TJEBBES
</pre>
83 9 Gaston TJEBBES
84 1 Gaston TJEBBES
h3. Les fichiers .sql 
85 10 Gaston TJEBBES
86 11 Gaston TJEBBES
<pre>
87 1 Gaston TJEBBES
mysql/files/gen/fichiers.sql                 ->   /usr/share/eole/mysql/<nomdelappli>/gen/fichiers.sql
88 7 Gaston TJEBBES
mysql/files/updates/fichiers.sql             ->   /usr/share/eole/mysql/<nomdelappli>/updates/fichiers.sql
89 11 Gaston TJEBBES
</pre>
90 7 Gaston TJEBBES
91 18 Gaston TJEBBES
h3. Les fichiers de mots de passe
92 18 Gaston TJEBBES
93 20 Gaston TJEBBES
Les fichiers de mot de passe devront contenir une variable container.
94 18 Gaston TJEBBES
Si vous utilisez des scripts de pre et post update, ceux-ci doivent se trouver dans le container maître.
95 18 Gaston TJEBBES
96 9 Gaston TJEBBES
h3. Impact des modifications 
97 14 Gaston TJEBBES
98 10 Gaston TJEBBES
* Les dicos contiennent les chemins vers les fichiers .sql
99 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);
100 18 Gaston TJEBBES
* le Makefile doit tenir compte des modifications. (ça doit être à peu près tout en attendant la modification de eole-mysql);
101 18 Gaston TJEBBES
* Rajouter la variable container dans les fichiers (.ini) de modification de mot de passe.
102 15 Gaston TJEBBES
103 17 Gaston TJEBBES
h3. Mysql en ligne de commande
104 17 Gaston TJEBBES
105 17 Gaston TJEBBES
Pour utiliser la commande mysql dans un script bash, il faut faire comme suit :
106 17 Gaston TJEBBES
<pre>
107 17 Gaston TJEBBES
# Cette ligne ci permet de charger les adresses/chemins des containers
108 17 Gaston TJEBBES
. /etc/eole/containers.conf
109 17 Gaston TJEBBES
echo "Update matable set ..." |  mysql --defaults-file=$container_path_mysql/etc/mysql/debian.cnf -h$container_ip_mysql 
110 17 Gaston TJEBBES
</pre>
111 17 Gaston TJEBBES
112 17 Gaston TJEBBES
Donc en ligne de commande, c'est pareil (ou presque)
113 17 Gaston TJEBBES
<pre>
114 17 Gaston TJEBBES
. /etc/eole/containers.conf
115 17 Gaston TJEBBES
mysql -uroot -ppassword -h$container_ip_mysql
116 17 Gaston TJEBBES
</pre>
117 17 Gaston TJEBBES
118 19 Gaston TJEBBES
h3. Le passage au container
119 19 Gaston TJEBBES
120 19 Gaston TJEBBES
* Les bases de données sont créées avec un grant de l'utilisateur@localhost, cela s'avère bloquant lorsque l'on passe au container.
121 19 Gaston TJEBBES
* Grant utilisateur@ipcontainer est nécessaire.
122 19 Gaston TJEBBES
123 19 Gaston TJEBBES
124 15 Gaston TJEBBES
h2. L'arbre des dépendances
125 15 Gaston TJEBBES
126 15 Gaston TJEBBES
Il va falloir réfléchir aux meta paquets :
127 15 Gaston TJEBBES
* envole-pkg;
128 15 Gaston TJEBBES
* envole-extras-pkg.
129 23 Joël Cuissinat
130 23 Joël Cuissinat
131 25 Joël Cuissinat
h2. Familles et variables à renommer entre 2.2 et 2.3
132 1 Gaston TJEBBES
133 30 Joël Cuissinat
h3. eoleSSO
134 30 Joël Cuissinat
135 24 Joël Cuissinat
* *full_cas* = 'oui' et *config_sso* = 'oui' => *activer_sso* != 'non' _(valeurs possibles pour activer_sso : ['non', 'local', 'distant'])_
136 24 Joël Cuissinat
* <file filelist=' *sso* '> => <file filelist=' *ssoclient* '> _(utilisé pour les fichiers clients pam/cas et php/cas)_
137 1 Gaston TJEBBES
* *port_sso* et *cas_port* => *eolesso_port*
138 1 Gaston TJEBBES
* *adresse_sso* et *cas_domainname* => *eolesso_adresse*
139 30 Joël Cuissinat
140 30 Joël Cuissinat
h3. eole-web
141 30 Joël Cuissinat
142 30 Joël Cuissinat
* <family name=' *Applications web* '> => <family name=' *applications web* '>
143 30 Joël Cuissinat
* *web_domain* => *web_url*
144 30 Joël Cuissinat
* *web_default* => *web_redirection*
145 30 Joël Cuissinat
* *scribe_envole_url* et *scribe_envole* disparaissent et *posh_url* => *web_url*
146 30 Joël Cuissinat
147 30 Joël Cuissinat
h3. portail Envole
148 30 Joël Cuissinat
149 32 Joël Cuissinat
* *web_envole* et "posh" => *activer_envole*
150 31 Joël Cuissinat
* *posh_path* => *alias_envole* ( avec le */* compris )
151 30 Joël Cuissinat
152 30 Joël Cuissinat
h3. applications
153 30 Joël Cuissinat
154 35 Benoit Vila
* Les variables d'activation des applies EnvOLE => *activer_<applie>*
155 33 Joël Cuissinat
156 33 Joël Cuissinat
157 33 Joël Cuissinat
h2. Notes concernant la mise à niveau de eole-posh
158 33 Joël Cuissinat
159 33 Joël Cuissinat
* TODO : changer le nom du paquet et en profiter pour réinitialiser le numéro de version dans le debian/changelog
160 33 Joël Cuissinat
* vérifier le logrotate
161 33 Joël Cuissinat
* problèmes probables de droits d'accès aux bdd (GRANT ...)
162 33 Joël Cuissinat
* quid de /etc/envole/config.ini ?
163 33 Joël Cuissinat
* scripts pre/post : commentés dans le Makefile et n'utilisant pas $container_path_web
164 33 Joël Cuissinat
* service de gestion des profils sur le maître ? => ajouter des .fw + mettre à jour l'adresse côté client
165 34 Joël Cuissinat
* fichier sudo et problématique décrite dans #824