Wiki » Historique » Version 24
Version 23 (Vincent Chavanon, 24/09/2015 11:11) → Version 24/26 (Thierry Bertrand, 24/09/2015 15:11)
h1. Principe de fonctionnement
Le paquet eole-zephir-medde sert à alimenter le Zephir avec les informations des modules eSBL & eCDL.
Il contient à minima les dictionnaires et les fonctions nécessaires pour pouvoir déclarer un serveur via le frontend Zephir.
Par extension, il peut aussi contenir tous les dictionnaires "hors Eole" nécessaires aux variantes.
*! les dictionnaires portés par Eole ne doivent pas figurer dans ce dépôt ! Ce serait fatal à apt !*
h1. Arborescence dépôt
<pre>
|_ creole
| |_ funcs
| |_ creole3
| |_ mesFonctionsPerso.py
</pre>Ce répertoire sert à stocker l'ensemble des fonctions personnalisées nécessaires à la saisie. *funcs/creole3 n'est valable que pour les fonctions en 2.4 et supérieur*.
<pre>
|_ zephir
| |_ default_modules
| |_ 6
| |_ ecdl-2.4
| |_ esbl-2.4
| |_ 7
| |_ ecdl-2.4.1
| |_ ecdl-2.4.1
</pre>Les répertoires 6 et 7 servent à stocker les fichiers contenant les informations de paquets nécessaires par module.
Ces chiffres correspondent respectivement aux versions 2.4 & 2.4.1 d'Eole.
Toutes ces informations se retrouvent dans la liste *DISTRIB* du fichier du dépot git *zephir-parc : python/zephir/config.py*
Les fichiers doivent être appelés *nom_module-release*
Chaque fichier contient donc la liste des paquets que le module indiqué dans le nom contiendra
ex. ecdl-2.4.1
<pre>
|_ zephir
| |_ dictionnaires
| |_ 2.4
| |_ eole
| |_ eole-ecdl
| |_ eole-esbl
| |_ 2.4.1
| |_ eole
| |_ eole-ecdl
| |_ eole-ecdlannuaire
| |_ eole-esbl
| |_ supervision-psin
</pre>Ces répertoires correspondent aux noms des paquets d'où sont issus les dictionnaires pour le module.
Ils abritent tous les dictionnaires dont peut disposer le frontend, qu'ils soient inclus dans le module (cf. fichier default_modules/numero_version/nom_module-release) ou qu'ils soient uniquement éventuellement disponible pour une variante, et donc non présent dans un fichier nom_module-release
Remarque le répertoire dictionnaires/2.4 correspond à la version 2.4.0
Par exemple, le répertoire
<pre>
| |_ supervision-psin
</pre>contient
20_psin.xml 49_ocsinventory_agent.xml
h1. Principes d'alimentation
L'alimentation peut se faire de deux manières :
h2. 1 - outils zephir-parc
Le dépôt zephir-parc contient un tas d'outils permettant quasiment d'automatiser la collecte d'informations nécessaires.
*Ces outils ne gèrent que les modules et pas les variantes*.
Sur un serveur installé, *mis à jour* de sa version et *instancié*
<pre>
git clone https://dev-eole.ac-dijon.fr/git/zephir-parc.git
cd zephir-parc/outils
</pre>
Ce répertoire contient un script shell zephir_dicts.sh qui, lancé sur le module, va générer une archive sous /tmp (Cette opération est donc à répéter sur un serveur de chaque module)
L'archive est organisée de la manière suivante (cas d'un eCDL) :
<pre>
ecdl-2.4.1.paqs
|_ eole
| |_ eole-antivirus
| |_ eole-client-annuaire
| |_ eole-ead-common
| |_ eole-ecdl
| |_ eole-ecdlannuaire
| |_ eole-exim
| |_ eole-fichier-common
| |_ eole-fichier-primaire
| |_ eole-flask
| |_ eole-nut
| |_ eole-server
| |_ eole-userpassword
| |_ supervision-psin
</pre>
fichier nommodule-release
Le fichier *ecdl-2.4.1.paqs* correspond au fichier *nom_module-release* vu précédemment et doit être renommé *sans* l'extension .paqs.
Soit ici ecdl-2.4.1.paqs devient ecdl-2.4.1
De plus, il *doit* subir une modification nécessaire pour indiquer si le module concerné est en mode conteneur ou pas :
mode *non conteneur* : ajout de la ligne: eole/eole-zephir-module
mode *conteneur* : eole/eole-zephir-module-container
Reste alors à le placer au bon endroit sur le dépôt soit ici : _eole-zephir-medde/zephir/default_modules/7/ecdl-2.4.1_
répertoires de dictionnaires
L'archive se comporte comme l'arborescence du dépôt. On obtient des répertoires qui correspondent à des paquets et contenant des dictionnaires.
Ils devront être ajoutés au dépôt à l'endroit adéquat sous */zephir/dictionnaires/release* soit ici : _eole-zephir-medde/zephir/dictionnaires/2.4.1/_
*Rappel : dans le cadre des modules MEDDE traités ici, il faut purger tous les dicos portés par Eole et ne pas les ajouter sous peine de casser apt*
h2. 2 - Méthode automatique type EN
Un script parse l'ensemble des dicos de tous les dépôts et alimente le paquet des dictionnaires zephir EN automatiquement.
Il reste à développer ET tester au MEDDE
h2. 3 - A la main
Pour chaque projet à jour, récupérer pour chaque release (2.4, 2.4.1 ...), l'ensemble des dicos et les ajouter dans le dossier au nom du projet situé dans */zephir/dictionnaires/2.4.1/release/eole/nom_projet/*
Si le paquet est inclus dans un module, vérifier que le nom du paquet correspondant figure bien dans le fichier *nom_module-release* présent dans */zephir/default_modules/no_release/*
Et, à chaque modification de dictionnaire, se poser la question *"Et le Zephir dans tout ça ?"* et prendre le réflexe d'alimenter ce dépôt systématiquement et correctement.
h1. La gestion des variantes
Pour qu'un dictionnaire soit visible dans la liste de ceux ajoutable à une variante, il faut qu'il soit listé dans le répertoire des dictionnaires zephir/dictionnaires (cf. Principe de fonctionnement). Il est très probable que ce dictionnaire ne soit pas listé dans le fichier *nom_module-release* : il s'agit bien d'un dictionnaire ajoutable dans une variante et non présent dans le module.
l'outil zephir-parc génère automatiquement le fichier *nom_module-release* ET la liste des dictionnaires, en s'appuyant sur les composants installés sur le serveur d'où il est exécuté : si des dictionnaires ne sont pas présents sur le serveur utilisé pour la génération du fichier *nom_module-release* et la liste des dictionnaires, il faudra :
Soit enrichir la liste des dictionnaires à la main
soit installer le paquet sur le serveur, relancer zephir_parc, qui va regénérer un fichier *nom_module-release* et la liste des dictionnaires , et supprimer du fichier *nom_module-release* le paquet qui sera ajoutable dans une variante.
Le paquet eole-zephir-medde sert à alimenter le Zephir avec les informations des modules eSBL & eCDL.
Il contient à minima les dictionnaires et les fonctions nécessaires pour pouvoir déclarer un serveur via le frontend Zephir.
Par extension, il peut aussi contenir tous les dictionnaires "hors Eole" nécessaires aux variantes.
*! les dictionnaires portés par Eole ne doivent pas figurer dans ce dépôt ! Ce serait fatal à apt !*
h1. Arborescence dépôt
<pre>
|_ creole
| |_ funcs
| |_ creole3
| |_ mesFonctionsPerso.py
</pre>Ce répertoire sert à stocker l'ensemble des fonctions personnalisées nécessaires à la saisie. *funcs/creole3 n'est valable que pour les fonctions en 2.4 et supérieur*.
<pre>
|_ zephir
| |_ default_modules
| |_ 6
| |_ ecdl-2.4
| |_ esbl-2.4
| |_ 7
| |_ ecdl-2.4.1
| |_ ecdl-2.4.1
</pre>Les répertoires 6 et 7 servent à stocker les fichiers contenant les informations de paquets nécessaires par module.
Ces chiffres correspondent respectivement aux versions 2.4 & 2.4.1 d'Eole.
Toutes ces informations se retrouvent dans la liste *DISTRIB* du fichier du dépot git *zephir-parc : python/zephir/config.py*
Les fichiers doivent être appelés *nom_module-release*
Chaque fichier contient donc la liste des paquets que le module indiqué dans le nom contiendra
ex. ecdl-2.4.1
<pre>
|_ zephir
| |_ dictionnaires
| |_ 2.4
| |_ eole
| |_ eole-ecdl
| |_ eole-esbl
| |_ 2.4.1
| |_ eole
| |_ eole-ecdl
| |_ eole-ecdlannuaire
| |_ eole-esbl
| |_ supervision-psin
</pre>Ces répertoires correspondent aux noms des paquets d'où sont issus les dictionnaires pour le module.
Ils abritent tous les dictionnaires dont peut disposer le frontend, qu'ils soient inclus dans le module (cf. fichier default_modules/numero_version/nom_module-release) ou qu'ils soient uniquement éventuellement disponible pour une variante, et donc non présent dans un fichier nom_module-release
Remarque le répertoire dictionnaires/2.4 correspond à la version 2.4.0
Par exemple, le répertoire
<pre>
| |_ supervision-psin
</pre>contient
20_psin.xml 49_ocsinventory_agent.xml
h1. Principes d'alimentation
L'alimentation peut se faire de deux manières :
h2. 1 - outils zephir-parc
Le dépôt zephir-parc contient un tas d'outils permettant quasiment d'automatiser la collecte d'informations nécessaires.
*Ces outils ne gèrent que les modules et pas les variantes*.
Sur un serveur installé, *mis à jour* de sa version et *instancié*
<pre>
git clone https://dev-eole.ac-dijon.fr/git/zephir-parc.git
cd zephir-parc/outils
</pre>
Ce répertoire contient un script shell zephir_dicts.sh qui, lancé sur le module, va générer une archive sous /tmp (Cette opération est donc à répéter sur un serveur de chaque module)
L'archive est organisée de la manière suivante (cas d'un eCDL) :
<pre>
ecdl-2.4.1.paqs
|_ eole
| |_ eole-antivirus
| |_ eole-client-annuaire
| |_ eole-ead-common
| |_ eole-ecdl
| |_ eole-ecdlannuaire
| |_ eole-exim
| |_ eole-fichier-common
| |_ eole-fichier-primaire
| |_ eole-flask
| |_ eole-nut
| |_ eole-server
| |_ eole-userpassword
| |_ supervision-psin
</pre>
fichier nommodule-release
Le fichier *ecdl-2.4.1.paqs* correspond au fichier *nom_module-release* vu précédemment et doit être renommé *sans* l'extension .paqs.
Soit ici ecdl-2.4.1.paqs devient ecdl-2.4.1
De plus, il *doit* subir une modification nécessaire pour indiquer si le module concerné est en mode conteneur ou pas :
mode *non conteneur* : ajout de la ligne: eole/eole-zephir-module
mode *conteneur* : eole/eole-zephir-module-container
Reste alors à le placer au bon endroit sur le dépôt soit ici : _eole-zephir-medde/zephir/default_modules/7/ecdl-2.4.1_
répertoires de dictionnaires
L'archive se comporte comme l'arborescence du dépôt. On obtient des répertoires qui correspondent à des paquets et contenant des dictionnaires.
Ils devront être ajoutés au dépôt à l'endroit adéquat sous */zephir/dictionnaires/release* soit ici : _eole-zephir-medde/zephir/dictionnaires/2.4.1/_
*Rappel : dans le cadre des modules MEDDE traités ici, il faut purger tous les dicos portés par Eole et ne pas les ajouter sous peine de casser apt*
h2. 2 - Méthode automatique type EN
Un script parse l'ensemble des dicos de tous les dépôts et alimente le paquet des dictionnaires zephir EN automatiquement.
Il reste à développer ET tester au MEDDE
h2. 3 - A la main
Pour chaque projet à jour, récupérer pour chaque release (2.4, 2.4.1 ...), l'ensemble des dicos et les ajouter dans le dossier au nom du projet situé dans */zephir/dictionnaires/2.4.1/release/eole/nom_projet/*
Si le paquet est inclus dans un module, vérifier que le nom du paquet correspondant figure bien dans le fichier *nom_module-release* présent dans */zephir/default_modules/no_release/*
Et, à chaque modification de dictionnaire, se poser la question *"Et le Zephir dans tout ça ?"* et prendre le réflexe d'alimenter ce dépôt systématiquement et correctement.
h1. La gestion des variantes
Pour qu'un dictionnaire soit visible dans la liste de ceux ajoutable à une variante, il faut qu'il soit listé dans le répertoire des dictionnaires zephir/dictionnaires (cf. Principe de fonctionnement). Il est très probable que ce dictionnaire ne soit pas listé dans le fichier *nom_module-release* : il s'agit bien d'un dictionnaire ajoutable dans une variante et non présent dans le module.
l'outil zephir-parc génère automatiquement le fichier *nom_module-release* ET la liste des dictionnaires, en s'appuyant sur les composants installés sur le serveur d'où il est exécuté : si des dictionnaires ne sont pas présents sur le serveur utilisé pour la génération du fichier *nom_module-release* et la liste des dictionnaires, il faudra :
Soit enrichir la liste des dictionnaires à la main
soit installer le paquet sur le serveur, relancer zephir_parc, qui va regénérer un fichier *nom_module-release* et la liste des dictionnaires , et supprimer du fichier *nom_module-release* le paquet qui sera ajoutable dans une variante.