Projet

Général

Profil

Doc-geting-started » Historique » Version 35

Joël Cuissinat, 02/06/2014 09:32
ajout de /bin/ et /sbin

1 1 Philippe Caseiro
h1. Premiers pas
2 1 Philippe Caseiro
3 6 Lionel Morin
Dans ce document vous trouverez toutes les étapes pour utiliser le dépôt standard Eole pour le packaging.
4 1 Philippe Caseiro
5 6 Lionel Morin
L'idée de départ de ce dépôt est de fournir un outil qui vous permet de disposer d'un environnement prêt à l'emploi
6 1 Philippe Caseiro
pour construire un paquet "Eole".
7 1 Philippe Caseiro
8 1 Philippe Caseiro
Il suffit de mettre les fichiers dans les bons répertoires.
9 1 Philippe Caseiro
10 1 Philippe Caseiro
h2. Le dépôt
11 1 Philippe Caseiro
12 7 Lionel Morin
Voici l’arborescence type d'un dépôt "standardisé" :
13 1 Philippe Caseiro
14 2 Philippe Caseiro
* */src/*
15 1 Philippe Caseiro
** *<appli>-<version>/*
16 1 Philippe Caseiro
** *plugins-<version>/nom/*
17 1 Philippe Caseiro
** *lang-<version>/nom/*
18 1 Philippe Caseiro
* */tmpl/*
19 1 Philippe Caseiro
* */dicos/*
20 1 Philippe Caseiro
* */pretemplate/*
21 1 Philippe Caseiro
* */posttemplate/*
22 1 Philippe Caseiro
* */postservice/*
23 32 Philippe Caseiro
* */logrotate/*
24 20 Joël Cuissinat
* */diagnose/*
25 20 Joël Cuissinat
* */firewall/*
26 33 Emmanuel GARETTE
* */extra/*
27 28 Emmanuel GARETTE
* */schedule/*
28 28 Emmanuel GARETTE
** *pre/*
29 28 Emmanuel GARETTE
** *post/*
30 28 Emmanuel GARETTE
* */bacula/*
31 28 Emmanuel GARETTE
** *fichier/*
32 28 Emmanuel GARETTE
** *restore/*
33 30 Emmanuel GARETTE
* */scripts/*
34 35 Joël Cuissinat
* */sbin/*
35 35 Joël Cuissinat
* */bin/*
36 1 Philippe Caseiro
* */sql/*
37 1 Philippe Caseiro
** *gen/*
38 1 Philippe Caseiro
** *updates/*
39 1 Philippe Caseiro
** *conf/*
40 1 Philippe Caseiro
*** *gen/*
41 1 Philippe Caseiro
*** *updates/*
42 1 Philippe Caseiro
*** *pwd/*
43 1 Philippe Caseiro
* */sso/*
44 1 Philippe Caseiro
** *filtres/*
45 1 Philippe Caseiro
** *user-info/*
46 1 Philippe Caseiro
* */ldap/*
47 29 Joël Cuissinat
** *passwords/*
48 19 Joël Cuissinat
* */ead/*
49 21 Joël Cuissinat
** *actions/*
50 21 Joël Cuissinat
** *perms/*
51 21 Joël Cuissinat
** *roles/*
52 22 Joël Cuissinat
* */zephir/*
53 22 Joël Cuissinat
** *configs/*
54 22 Joël Cuissinat
** *srv/*
55 31 Joël Cuissinat
* */certs/*
56 20 Joël Cuissinat
* */lib/*
57 20 Joël Cuissinat
** *eole/*
58 20 Joël Cuissinat
** *<source>/*
59 1 Philippe Caseiro
* */sharenvole/*
60 3 Philippe Caseiro
* _Makefile_
61 3 Philippe Caseiro
* _eole.mk_
62 3 Philippe Caseiro
* _apps.mk_
63 24 Daniel Dehennin
* *<appli>.mk*
64 1 Philippe Caseiro
65 1 Philippe Caseiro
Commentaires :
66 1 Philippe Caseiro
67 1 Philippe Caseiro
table{border:1px solid black}.
68 9 Philippe Caseiro
| */src/*                   | _Répertoire de destination des sources de l'application_                                                                                      |
69 2 Philippe Caseiro
| */src/<appli>-<version>/* | _Code source de l'application avec la possibilité de faire cohabiter plusieurs versions lors des mises à jour_                                |
70 1 Philippe Caseiro
| */src/plugins-<version>/* | _Répertoire contenant les plugins externes et ceux développés en interne pour cette version de l'application (un sous-répertoire par plugin)_ |
71 2 Philippe Caseiro
| */src/lang-<version>/*    | _Répertoire des traductions pour cette version (un sous-répertoire par langue)_                                                               |
72 1 Philippe Caseiro
| */tmpl/*                  | _Répertoire des templates eole_                                                                                                               |
73 1 Philippe Caseiro
| */dicos/*                 | _Répertoire des dictionnaires eole (XX_<appli>.xml[1])                                                                                        |
74 2 Philippe Caseiro
| */pretemplate/*           | _Répertoire des scripts (shell ou python) de pretemplate_                                                                                     |
75 1 Philippe Caseiro
| */posttemplate/*          | _Répertoire des scripts (shell ou python) de posttemplate_                                                                                    |
76 1 Philippe Caseiro
| */postservice/*           | _Répertoire des scripts (shell ou python) de postservice_                                                                                     |
77 32 Philippe Caseiro
| */postservice/*           | _Répertoire des scripts (shell ou python) de postservice_                                                                                     |
78 34 Lionel Morin
| */logrotate/*             | _Répertoire des configurations logrotate_                                                                                                     |
79 1 Philippe Caseiro
| */diagnose/*              | _Répertoire des scripts de tests diagnose_                                                                                                    |
80 22 Joël Cuissinat
| */firewall/*              | _Répertoire des fichiers eole-firewall (.fw) statiques_                                                                                       |
81 33 Emmanuel GARETTE
| */extra/*                 | _Répertoire des dictionnaires extra (mettre un sous répertoire par projet)_                                                                   |
82 34 Lionel Morin
| */schedule/pre/*          | _Répertoire des scripts schedule "pre"_                                                                                                       |
83 27 Emmanuel GARETTE
| */schedule/post/*         | _Répertoire des scripts schedule "post"_                                                                                                      |
84 30 Emmanuel GARETTE
| */bacula/fichier/*        | _Répertoire de description des fichiers à sauvegarder par Bacula_                                                                             |
85 1 Philippe Caseiro
| */bacula/restore/*        | _Répertoire des scripts de restauration Bacula_                                                                                               |
86 35 Joël Cuissinat
| */scripts/*               | _Répertoire des scripts exécutables par les l'utilisateur root EOLE_                                                                                |
87 35 Joël Cuissinat
| */sbin/*               | _Répertoire des scripts exécutables pour /usr/sbin_                                                                                     |
88 35 Joël Cuissinat
| */bin/*               | _Répertoire des scripts exécutables pour /usr/bin_                                                                                     |
89 2 Philippe Caseiro
| */sql/*                   | _Répertoire des configurations pour la génération et la gestion des mise à jours des bases de données_                                        |
90 6 Lionel Morin
| */sql/gen/*               | _Répertoire des scripts sql à exécuter lors de la génération de la base de données_                                                           |
91 6 Lionel Morin
| */sql/updates*            | _Répertoire des scripts sql à exécuter lors de mise à jour de la base de données_                                                             |
92 2 Philippe Caseiro
| */sql/conf/*              | _Répertoire des configurations pour la gestion de la bases de données_                                                                        |
93 2 Philippe Caseiro
| */sql/conf/gen*           | _Répertoire du fichier de configuration de génération de la base de données_                                                                  |
94 9 Philippe Caseiro
| */sql/conf/updates*       | _Répertoire du fichier de configuration des mises à jour de la base de données_                                                               |
95 1 Philippe Caseiro
| */sql/conf/passwords*     | _Répertoire du fichier de configuration pour la gestion de mots de passe d'accès à la base de données_                                        |
96 1 Philippe Caseiro
| */sso/*                   | _Répertoire des configurations pour la gestion du SSO_                                                                                        |
97 1 Philippe Caseiro
| */sso/filtres/*           | _Répertoire des filtres sso (<appli>.ini, <appli>_apps.ini)_                                                                                  |
98 1 Philippe Caseiro
| */sso/user-info/*         | _Répertoire du profil sso (profil_<appli>.py)                                                                                                 |
99 1 Philippe Caseiro
| */ldap/*                  | _Répertoire des configurations pour la gestion des mots de passe d'accès au serveur ldap_                                                     |
100 22 Joël Cuissinat
| */ldap/passwords/*        | _Répertoire du fichier de  configuration du mot de passe ldap (<appli>.ini)_                                                                  |
101 22 Joël Cuissinat
| */ead/*                   | _Répertoire des configurations pour la gestion des actions EAD_                                                                               |
102 22 Joël Cuissinat
| */ead/actions/*           | _Répertoire des configurations pour la gestion des actions de l'EAD_                                                                          |
103 22 Joël Cuissinat
| */ead/perms/*             | _Répertoire des configurations pour la gestion des rôles de l'EAD_                                                                            |
104 22 Joël Cuissinat
| */ead/roles/*             | _Répertoire des configurations pour la gestion des associations de rôle de l'EAD_                                                             |
105 22 Joël Cuissinat
| */zephir/*                | _Répertoire des configurations pour la gestion des agents Zéphir_                                                                             |
106 22 Joël Cuissinat
| */zephir/configs*         | _Répertoire des configurations pour la gestion des configuration d'agents Zéphir_                                                             |
107 22 Joël Cuissinat
| */zephir/srv*             | _Répertoire des configurations pour la gestion des configuration d'agents de service Zéphir_                                                  |
108 31 Joël Cuissinat
| */certs/*                 | _Répertoire pour les certificats à générer_                                                                                                   |
109 22 Joël Cuissinat
| */lib/*                   | _Répertoire pour les fichiers de librairie (/usr/lib)_                                                                                        |
110 22 Joël Cuissinat
| */lib/eole/*              | _Répertoire pour les fichiers de librairie EOLE_                                                                                              |
111 22 Joël Cuissinat
| */lib/<source>/*          | _Répertoire pour les fichiers de librairie spécifiques à l'application_                                                                       |
112 2 Philippe Caseiro
| */sharenvole/*            | _Répertoire des scripts historiques d'aide à l'installation des applications envole (à éviter si possible)_                                   |
113 6 Lionel Morin
| Makefile                  | _Fichier de règles de "compilation"_                                                                                                          |
114 9 Philippe Caseiro
| eole.mk                   | _Règles standard Eole ! ne pas changer ce fichier_                                                                                            |
115 9 Philippe Caseiro
| apps.mk                   | _Règles pour l'installation de l'application web._                                                                                            |
116 25 Daniel Dehennin
| <appli>.mk                | _Règles pour supplémentaire du développeur à inclure dans Makefile_                                                                           |
117 1 Philippe Caseiro
118 1 Philippe Caseiro
h2. Etape 1 : Cloner le dépôt
119 3 Philippe Caseiro
120 3 Philippe Caseiro
@git clone http://dev-eole.ac-dijon.fr/git/eole-skeletor@
121 3 Philippe Caseiro
<pre>
122 3 Philippe Caseiro
Cloning into 'eole-skeletor'...
123 3 Philippe Caseiro
remote: Counting objects: 83, done.
124 3 Philippe Caseiro
remote: Compressing objects: 100% (71/71), done.
125 3 Philippe Caseiro
remote: Total 83 (delta 26), reused 0 (delta 0)
126 3 Philippe Caseiro
Unpacking objects: 100% (83/83), done.
127 3 Philippe Caseiro
</pre>
128 3 Philippe Caseiro
129 3 Philippe Caseiro
Vous disposez désormais d'un répertoire _eole-skeletor_. 
130 7 Lionel Morin
Ce répertoire contient un exemple type de dépôt standard.
131 3 Philippe Caseiro
132 3 Philippe Caseiro
h2. Etape 2: Créer votre propre dépôt
133 3 Philippe Caseiro
134 3 Philippe Caseiro
Lancer les commandes suivantes : 
135 3 Philippe Caseiro
136 3 Philippe Caseiro
@mkdir eole-monappli@
137 3 Philippe Caseiro
@cd eole-monappli@
138 3 Philippe Caseiro
@git init .@
139 3 Philippe Caseiro
@cp ../eole-skeletor/*.mk ../eole-skeletor/Makefile .@
140 3 Philippe Caseiro
@git add .@
141 3 Philippe Caseiro
@git commit -am "Premier commit : Ajout des fichiers Makefile standard"@
142 3 Philippe Caseiro
143 4 Philippe Caseiro
<pre>
144 4 Philippe Caseiro
user@host:code $ mkdir eole-monappli
145 4 Philippe Caseiro
user@host:code $ cd eole-monappli
146 4 Philippe Caseiro
user@host:code/eole-monappli $ git init .
147 4 Philippe Caseiro
Initialized empty Git repository in /tmp/eole-monappli/.git/
148 4 Philippe Caseiro
user@host:code/eole-monappli $ cp ../eole-skeletor/*.mk ../eole-skeletor/Makefile .
149 4 Philippe Caseiro
user@host:code/eole-monappli $ git add .
150 4 Philippe Caseiro
user@host:code/eole-monappli $ git commit -am "Premier commit : Ajout des fichiers Makefile standard"
151 4 Philippe Caseiro
[master (root-commit) 1be6951] Premier commit : Ajout des fichiers Makefile standard
152 4 Philippe Caseiro
3 files changed, 195 insertions(+)
153 4 Philippe Caseiro
create mode 100644 Makefile
154 4 Philippe Caseiro
create mode 100644 apps.mk
155 4 Philippe Caseiro
create mode 100644 eole.mk
156 4 Philippe Caseiro
user@host:code/eole-monappli $
157 4 Philippe Caseiro
</pre>
158 1 Philippe Caseiro
159 10 Philippe Caseiro
h2. Etape 3: Mise en place des fichiers (Makefile, dico, templates, sources, configurations...)
160 1 Philippe Caseiro
161 10 Philippe Caseiro
La première chose a faire est de mettre à jour le fichier Makefile pour qu'il corresponde a votre application.
162 26 Daniel Dehennin
Il faut mettre à jour 4 variables, SOURCE, EOLE_VERSION, VERSION et PKGAPPS 
163 1 Philippe Caseiro
164 26 Daniel Dehennin
* *SOURCE* contiens le nom de votre application
165 26 Daniel Dehennin
* *EOLE_VERSION* version EOLE cible, *2.3* ou *2.4* à l’heure actuelle
166 10 Philippe Caseiro
* *VERSION* contiens la version de votre application
167 11 Philippe Caseiro
* *PKGAPPS* contiens oui ou non, pour répondre à la question "voulez vous générer un paquet _monapplli-apps[2]_"
168 10 Philippe Caseiro
169 10 Philippe Caseiro
170 7 Lionel Morin
Pour que le "Makefile" installe votre fichier au bon endroit, il suffit de créer le répertoire adéquat et
171 1 Philippe Caseiro
d'y mettre votre fichier.
172 7 Lionel Morin
173 10 Philippe Caseiro
174 7 Lionel Morin
h3. Exemple d'ajout d'un dictionnaire "Eole" :
175 4 Philippe Caseiro
176 4 Philippe Caseiro
Il suffit de lancer les commandes suivantes : 
177 4 Philippe Caseiro
178 4 Philippe Caseiro
@mkdir dicos@
179 4 Philippe Caseiro
@cp XX_nom_appli.xml dicos@
180 4 Philippe Caseiro
181 3 Philippe Caseiro
<pre>
182 4 Philippe Caseiro
user@host:code/eole-monappli $ mkdir dicos
183 4 Philippe Caseiro
user@host:code/eole-monappli $ ls
184 4 Philippe Caseiro
apps.mk  dicos/  eole.mk  Makefile
185 4 Philippe Caseiro
user@host:code/eole-monappli $ cp /emplacement/de/mon/dico/XX_nom_appli.xml dicos
186 4 Philippe Caseiro
user@host:code/eole-monappli $ ls dicos
187 4 Philippe Caseiro
XX_nom_appli.xml
188 1 Philippe Caseiro
</pre>
189 1 Philippe Caseiro
190 1 Philippe Caseiro
Pour l'ajout d'un template la procédure est la même avec le répertoire tmpl.
191 1 Philippe Caseiro
192 1 Philippe Caseiro
h3. Exemple d'ajout de la génération d'une base de données
193 1 Philippe Caseiro
194 1 Philippe Caseiro
h4. Création de l'arborescence:
195 1 Philippe Caseiro
196 4 Philippe Caseiro
<pre>
197 4 Philippe Caseiro
├── sql
198 10 Philippe Caseiro
│   ├── conf
199 10 Philippe Caseiro
│   │   ├── gen
200 10 Philippe Caseiro
│   │   │   └── mon_appi.py
201 10 Philippe Caseiro
│   │   └── passwords
202 10 Philippe Caseiro
│   │       └── monappli.ini
203 10 Philippe Caseiro
│   └── gen
204 10 Philippe Caseiro
│       ├── premier_script.sql
205 10 Philippe Caseiro
│       └── second_script.sql
206 4 Philippe Caseiro
</pre>
207 4 Philippe Caseiro
208 4 Philippe Caseiro
@mkdir -p sql/conf/gen sql/conf/passwords sql/gen@
209 4 Philippe Caseiro
210 4 Philippe Caseiro
<pre>
211 4 Philippe Caseiro
user@host:code/eole-monappli $ mkdir -p sql/conf/gen sql/conf/passwords sql/gen
212 4 Philippe Caseiro
user@host:code/eole-monappli $ ls -R sql 
213 4 Philippe Caseiro
sql:
214 4 Philippe Caseiro
conf/  gen/
215 1 Philippe Caseiro
216 1 Philippe Caseiro
sql/conf:
217 4 Philippe Caseiro
gen/  passwords/
218 4 Philippe Caseiro
219 4 Philippe Caseiro
sql/conf/gen:
220 4 Philippe Caseiro
221 4 Philippe Caseiro
sql/conf/passwords:
222 4 Philippe Caseiro
223 4 Philippe Caseiro
sql/gen:
224 4 Philippe Caseiro
user@host:code/eole-monappli $ tree 
225 4 Philippe Caseiro
sql
226 4 Philippe Caseiro
├── conf
227 10 Philippe Caseiro
│   ├── gen
228 10 Philippe Caseiro
│   └── passwords
229 4 Philippe Caseiro
└── gen
230 4 Philippe Caseiro
</pre>
231 4 Philippe Caseiro
232 7 Lionel Morin
h4. Création des fichiers de configuration
233 4 Philippe Caseiro
234 4 Philippe Caseiro
Pour créer une base de données il faut plusieurs fichiers. 
235 4 Philippe Caseiro
* Un fichier de configuration pour la génération
236 4 Philippe Caseiro
* Un fichier de configuration pour la gestion des mots de passe d'accès à la base
237 7 Lionel Morin
* Les scripts SQL pour la création et l'initialisation de la base de données
238 4 Philippe Caseiro
239 4 Philippe Caseiro
h5. Fichier de Configuration pour la génération : 
240 4 Philippe Caseiro
241 7 Lionel Morin
Ce fichier contient les instructions nécessaires à la génération de la bases :
242 4 Philippe Caseiro
243 4 Philippe Caseiro
<pre><code class="python">
244 4 Philippe Caseiro
#-*-coding:utf-8-*-
245 4 Philippe Caseiro
###########################################################################
246 4 Philippe Caseiro
# Eole NG - 2011
247 4 Philippe Caseiro
# Copyright Pole de Competence Eole  (Ministere Education - Academie Dijon)
248 4 Philippe Caseiro
# Licence CeCill  cf /root/LicenceEole.txt
249 4 Philippe Caseiro
# eole@ac-dijon.fr
250 4 Philippe Caseiro
#
251 4 Philippe Caseiro
# gepi.py
252 4 Philippe Caseiro
#
253 4 Philippe Caseiro
# Création de la base de données mysql de gepi
254 4 Philippe Caseiro
#
255 4 Philippe Caseiro
###########################################################################
256 4 Philippe Caseiro
"""
257 4 Philippe Caseiro
Config pour gepi
258 4 Philippe Caseiro
"""
259 4 Philippe Caseiro
from eolesql.db_test import db_exists, test_var
260 4 Philippe Caseiro
261 4 Philippe Caseiro
GEPI_TABLEFILENAMES = ['/usr/share/eole/mysql/gepi/gen/gepi-create-0-initeole.sql',
262 4 Philippe Caseiro
                       '/usr/share/eole/mysql/gepi/gen/gepi-create-1-structure.sql',
263 4 Philippe Caseiro
                       '/usr/share/eole/mysql/gepi/gen/gepi-create-2-data.sql',
264 4 Philippe Caseiro
                       '/usr/share/eole/mysql/gepi/gen/gepi-create-3-ajouteole.sql']
265 4 Philippe Caseiro
def test():
266 4 Philippe Caseiro
    """
267 4 Philippe Caseiro
    test l'existence de la base gepi
268 4 Philippe Caseiro
    """
269 4 Philippe Caseiro
    return test_var('activer_gepi') and not db_exists('gepi')
270 4 Philippe Caseiro
271 4 Philippe Caseiro
conf_dict = dict(filenames=GEPI_TABLEFILENAMES,
272 4 Philippe Caseiro
                 test=test)
273 4 Philippe Caseiro
</code></pre>
274 5 Philippe Caseiro
Il faut placer ce fichier dans le répertoire _*sql/conf/gen*_.
275 5 Philippe Caseiro
276 5 Philippe Caseiro
h5. Fichier de configuration de gestion des mots de passe
277 5 Philippe Caseiro
278 7 Lionel Morin
Ce fichier contient les instructions nécessaires au renouvellement des mots de passe
279 7 Lionel Morin
des utilisateurs ayant accès à la base de données. Les applications disposent d'un utilisateur
280 5 Philippe Caseiro
qui a des droits d'écriture dans les tables de la base, cet utilisateur a un mot de passe
281 7 Lionel Morin
qui est renouvelé régulièrement par les mécanismes "Eole". Ce fichier sert à faire en sorte
282 5 Philippe Caseiro
que la configuration de l'application soit mise à jour lors du changement du mot de passe.
283 5 Philippe Caseiro
284 5 Philippe Caseiro
Voici un exemple de fichier : 
285 5 Philippe Caseiro
286 5 Philippe Caseiro
287 5 Philippe Caseiro
<pre><code class="bash">
288 5 Philippe Caseiro
[gepi]
289 5 Philippe Caseiro
username=gepi
290 5 Philippe Caseiro
container=web
291 5 Philippe Caseiro
template=$dbPass="
292 5 Philippe Caseiro
filename=/var/www/html/gepi/secure/connect.inc.php
293 5 Philippe Caseiro
owner=root:www-data
294 5 Philippe Caseiro
chmod=660
295 5 Philippe Caseiro
</code></pre>
296 5 Philippe Caseiro
297 5 Philippe Caseiro
Quelques petites précisions : 
298 7 Lionel Morin
* username= nom de l'utilisateur utilisé par l'application pour accéder à la base
299 7 Lionel Morin
* container= nom du conteneur lxc où l'application est hébergée
300 7 Lionel Morin
* template= chaîne qui préfixe le mot de passe dans le fichier de configuration
301 7 Lionel Morin
* filname= fichier de configuration à mettre à jour
302 7 Lionel Morin
* owner= utilisateur et groupe propriétaire du fichier de configuration au format user:group
303 7 Lionel Morin
* chmod= droits du fichier au format XXX
304 5 Philippe Caseiro
305 5 Philippe Caseiro
Il faut placer ce fichier dans le répertoire _*sql/conf/passwords*_.
306 5 Philippe Caseiro
307 5 Philippe Caseiro
h5. Scripts SQL de création et d'initialisation de la base
308 5 Philippe Caseiro
309 7 Lionel Morin
Un seul script est obligatoire, le script de création (toujours le premier de la liste) 
310 5 Philippe Caseiro
<pre><code class="python">
311 7 Lionel Morin
# Liste des fichiers sql à exécuter (dans l'ordre)
312 5 Philippe Caseiro
GEPI_TABLEFILENAMES = ['/usr/share/eole/mysql/gepi/gen/gepi-create-0-initeole.sql',
313 5 Philippe Caseiro
                       '/usr/share/eole/mysql/gepi/gen/gepi-create-1-structure.sql',
314 5 Philippe Caseiro
                       '/usr/share/eole/mysql/gepi/gen/gepi-create-2-data.sql',
315 5 Philippe Caseiro
                       '/usr/share/eole/mysql/gepi/gen/gepi-create-3-ajouteole.sql']
316 5 Philippe Caseiro
</code></pre>
317 5 Philippe Caseiro
318 5 Philippe Caseiro
Dans l'exemple c'est le script _*/usr/share/eole/mysql/gepi/gen/gepi-create-0-initeole.sql*_.
319 5 Philippe Caseiro
320 7 Lionel Morin
Ce script est très souvent un "template" eole car on a besoin d'informations contenues dans la configuration "Eole".
321 5 Philippe Caseiro
322 7 Lionel Morin
Exemple :
323 5 Philippe Caseiro
324 5 Philippe Caseiro
<pre><code class="sql">
325 7 Lionel Morin
-- création de la base de données
326 5 Philippe Caseiro
CREATE DATABASE gepi CHARACTER SET utf8 COLLATE utf8_general_ci;
327 5 Philippe Caseiro
328 5 Philippe Caseiro
-- création du user de la base
329 5 Philippe Caseiro
grant all privileges on gepi.* to gepi@%%adresse_ip_web identified by 'gepi';
330 5 Philippe Caseiro
flush privileges ;
331 5 Philippe Caseiro
332 1 Philippe Caseiro
-- connexion à la base
333 1 Philippe Caseiro
\r gepi
334 1 Philippe Caseiro
335 1 Philippe Caseiro
336 1 Philippe Caseiro
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
337 1 Philippe Caseiro
</code></pre>
338 1 Philippe Caseiro
339 1 Philippe Caseiro
Comme ce fichier est un template il doit être placé dans le répertoire _*tmpl*_ et configuré dans le dico (dicos/XX_nom_appli.xml).
340 1 Philippe Caseiro
341 1 Philippe Caseiro
Les autres fichiers de la liste sont des scripts sql très souvent fournis par l'application et sont à placer dans le répertoire _*sql/gen*_.
342 1 Philippe Caseiro
343 1 Philippe Caseiro
h2. Tester l'installation via le Makefile standard
344 10 Philippe Caseiro
345 10 Philippe Caseiro
Lancer la commandes suivante depuis votre dépôt: 
346 10 Philippe Caseiro
347 10 Philippe Caseiro
@DESTDIR=/tmp/monappli make install@
348 10 Philippe Caseiro
349 10 Philippe Caseiro
<pre>
350 10 Philippe Caseiro
user@host code/mon_appi $ DESTDIR=/tmp/monappli make install
351 10 Philippe Caseiro
test ! -d sql/update || install -m 755 -d /tmp/monappli/usr/share/eole/mysql/eole-zarafa/updates
352 10 Philippe Caseiro
test ! -d sql/conf/gen || install -m 755 -d /tmp/monappli/usr/share/eole/applications/gen
353 10 Philippe Caseiro
install -m 755 -d /tmp/monappli/usr/share/eole
354 10 Philippe Caseiro
test ! -d zephir/srv || install -m 755 -d /services
355 10 Philippe Caseiro
test ! -d sso/user-info || install -m 755 -d /tmp/monappli/usr/share/sso/user_infos
356 10 Philippe Caseiro
install -m 755 -d /tmp/monappli/usr/share/eole/creole
357 10 Philippe Caseiro
test ! -d zephir/configs || install -m 755 -d /tmp/monappli/usr/share/zephir/monitor/configs
358 10 Philippe Caseiro
test ! -d zephir || install -m 755 -d /tmp/monappli/usr/share/zephir
359 10 Philippe Caseiro
test ! -d sso || install -m 755 -d /tmp/monappli/usr/share/sso
360 10 Philippe Caseiro
test ! -d lxc || install -m 755 -d /tmp/monappli/usr/share/eole/lxc
361 10 Philippe Caseiro
test ! -d sharenvole || install -m 755 -d /tmp/monappli/usr/share/envole/eole-zarafa
362 10 Philippe Caseiro
test ! -d sso/filtres || install -m 755 -d /tmp/monappli/usr/share/sso/app_filters
363 10 Philippe Caseiro
test ! -d posttemplate || install -m 755 -d /tmp/monappli/usr/share/eole/posttemplate
364 10 Philippe Caseiro
test ! -d lxc/fstab || install -m 755 -d /tmp/monappli/usr/share/eole/lxc/fstab
365 10 Philippe Caseiro
test ! -d postservice || install -m 755 -d /tmp/monappli/usr/share/eole/postservice
366 10 Philippe Caseiro
test ! -d tmpl || install -m 755 -d /tmp/monappli/usr/share/eole/creole/distrib
367 10 Philippe Caseiro
test ! -d pretemplate || install -m 755 -d /tmp/monappli/usr/share/eole/pretemplate
368 10 Philippe Caseiro
test ! -d sql/conf/passwords || install -m 755 -d /tmp/monappli/usr/share/eole/applications/passwords
369 10 Philippe Caseiro
test ! -d sql || install -m 755 -d /tmp/monappli/usr/share/eole/mysql/eole-zarafa
370 10 Philippe Caseiro
test ! -d dicos || install -m 755 -d /tmp/monappli/usr/share/eole/creole/dicos
371 10 Philippe Caseiro
test ! -d diagnose || install -m 755 -d /tmp/monappli/usr/share/eole/diagnose/module
372 10 Philippe Caseiro
test ! -d ldap/passwords || install -m 755 -d /tmp/monappli/usr/share/eole/annuaire/password_files
373 10 Philippe Caseiro
test ! -d sql/gen || install -m 755 -d /tmp/monappli/usr/share/eole/mysql/eole-zarafa/gen
374 10 Philippe Caseiro
if [ -d  sql/update ]; then for file in `ls -1  sql/update/`; do  install -m 644  sql/update/$file  /tmp/monappli/usr/share/eole/mysql/eole-zarafa/updates || true; done; fi
375 10 Philippe Caseiro
if [ -d  sql/conf/gen ]; then for file in `ls -1  sql/conf/gen/`; do  install -m 644  sql/conf/gen/$file  /tmp/monappli/usr/share/eole/applications/gen || true; done; fi
376 10 Philippe Caseiro
if [ -d  zephir/srv ]; then for file in `ls -1  zephir/srv/`; do  install -m 644  zephir/srv/$file  /services || true; done; fi
377 10 Philippe Caseiro
if [ -d  sso/user-info ]; then for file in `ls -1  sso/user-info/`; do  install -m 644  sso/user-info/$file  /tmp/monappli/usr/share/sso/user_infos || true; done; fi
378 10 Philippe Caseiro
if [ -d  zephir/configs ]; then for file in `ls -1  zephir/configs/`; do  install -m 644  zephir/configs/$file  /tmp/monappli/usr/share/zephir/monitor/configs || true; done; fi
379 10 Philippe Caseiro
if [ -d  zephir ]; then for file in `ls -1  zephir/`; do  install -m 644  zephir/$file  /tmp/monappli/usr/share/zephir || true; done; fi
380 10 Philippe Caseiro
if [ -d  sso ]; then for file in `ls -1  sso/`; do  install -m 644  sso/$file  /tmp/monappli/usr/share/sso || true; done; fi
381 10 Philippe Caseiro
if [ -d  lxc ]; then for file in `ls -1  lxc/`; do  install -m 644  lxc/$file  /tmp/monappli/usr/share/eole/lxc || true; done; fi
382 10 Philippe Caseiro
if [ -d  sharenvole ]; then for file in `ls -1  sharenvole/`; do  install -m 644  sharenvole/$file  /tmp/monappli/usr/share/envole/eole-zarafa || true; done; fi
383 10 Philippe Caseiro
if [ -d  sso/filtres ]; then for file in `ls -1  sso/filtres/`; do  install -m 644  sso/filtres/$file  /tmp/monappli/usr/share/sso/app_filters || true; done; fi
384 10 Philippe Caseiro
if [ -d  lxc/fstab ]; then for file in `ls -1  lxc/fstab/`; do  install -m 644  lxc/fstab/$file  /tmp/monappli/usr/share/eole/lxc/fstab || true; done; fi
385 10 Philippe Caseiro
if [ -d  tmpl ]; then for file in `ls -1  tmpl/`; do  install -m 644  tmpl/$file  /tmp/monappli/usr/share/eole/creole/distrib || true; done; fi
386 10 Philippe Caseiro
if [ -d  sql/conf/passwords ]; then for file in `ls -1  sql/conf/passwords/`; do  install -m 644  sql/conf/passwords/$file  /tmp/monappli/usr/share/eole/applications/passwords || true; done; fi
387 1 Philippe Caseiro
if [ -d  sql ]; then for file in `ls -1  sql/`; do  install -m 644  sql/$file  /tmp/monappli/usr/share/eole/mysql/eole-zarafa || true; done; fi
388 32 Philippe Caseiro
install: omission du répertoire « sql/conf »
389 10 Philippe Caseiro
if [ -d  dicos ]; then for file in `ls -1  dicos/`; do  install -m 644  dicos/$file  /tmp/monappli/usr/share/eole/creole/dicos || true; done; fi
390 10 Philippe Caseiro
if [ -d  ldap/passwords ]; then for file in `ls -1  ldap/passwords/`; do  install -m 644  ldap/passwords/$file  /tmp/monappli/usr/share/eole/annuaire/password_files || true; done; fi
391 10 Philippe Caseiro
if [ -d  sql/gen ]; then for file in `ls -1  sql/gen/`; do  install -m 644  sql/gen/$file  /tmp/monappli/usr/share/eole/mysql/eole-zarafa/gen || true; done; fi
392 10 Philippe Caseiro
if [ -d  posttemplate ]; then for file in `ls -1  posttemplate/`; do  install -m 755  posttemplate/$file  /tmp/monappli/usr/share/eole/posttemplate || true; done; fi
393 10 Philippe Caseiro
if [ -d  postservice ]; then for file in `ls -1  postservice/`; do  install -m 755  postservice/$file  /tmp/monappli/usr/share/eole/postservice || true; done; fi
394 10 Philippe Caseiro
if [ -d  pretemplate ]; then for file in `ls -1  pretemplate/`; do  install -m 755  pretemplate/$file  /tmp/monappli/usr/share/eole/pretemplate || true; done; fi
395 10 Philippe Caseiro
if [ -d  diagnose ]; then for file in `ls -1  diagnose/`; do  install -m 755  diagnose/$file  /tmp/monappli/usr/share/eole/diagnose/module || true; done; fi
396 10 Philippe Caseiro
user@host code/mon_appi $ tree /tmp/monappli
397 10 Philippe Caseiro
/tmp/monappli
398 10 Philippe Caseiro
└── usr
399 1 Philippe Caseiro
    └── share
400 1 Philippe Caseiro
        └── eole
401 1 Philippe Caseiro
            ├── applications
402 32 Philippe Caseiro
            │   ├── gen
403 32 Philippe Caseiro
            │   └── passwords
404 10 Philippe Caseiro
            ├── creole
405 32 Philippe Caseiro
            │   └── dicos
406 10 Philippe Caseiro
            └── mysql
407 10 Philippe Caseiro
                └── eole-monappli
408 10 Philippe Caseiro
                    └── gen
409 10 Philippe Caseiro
</pre>
410 10 Philippe Caseiro
411 18 Lionel Morin
Votre application a été installée dans _/tmp/monappli_ vous devriez y retrouver une arborescence similaire à celle de l'exemple.
412 10 Philippe Caseiro
413 10 Philippe Caseiro
414 10 Philippe Caseiro
fn1. XX = Ordre de traitement du dictionnaire (de 00 à 99).
415 14 Philippe Caseiro
416 17 Philippe Caseiro
fn2. Plus d'informations : http://dev-eole.ac-dijon.fr/projects/envole/wiki/EnvoleMigration23#%C3%89tape-3-la-division-des-paquets