Projet

Général

Profil

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 !

Arborescence dépôt

|_ creole
|    |_ funcs
|        |_ mesFonctionsPerso.py
|
|    |_ funcs_creole2
|        |_ mesFonctionsPerso2.3.py

Ces répertoire servent à stocker l'ensemble des fonctions personnalisées nécessaires à la saisie. funcs n'est valable que pour les fonctions en 2.4 et supérieur tandis que funcs_creole2 fait la même chose pour Eole 2.3.
|_ zephir
|    |_ default_modules
|            |_ 6
|                |_ ecdl-2.4
|                |_ esbl-2.4
|            |_ 7
|                |_ ecdl-2.4.1
|                |_ ecdl-2.4.1
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

|_ zephir
|    |_ dictionnaires
|            |_ 2.4
|                |_ eole
|                    |_ eole-ecdl
|                    |_ eole-esbl
|            |_ 2.4.1
|                |_ eole
|                    |_ eole-ecdl
|                    |_ eole-ecdlannuaire
|                    |_ eole-esbl
|                    |_ supervision-psin
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

|                    |_ supervision-psin
contient
20_psin.xml 49_ocsinventory_agent.xml

Principes d'alimentation

L'alimentation peut se faire de deux manières :

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é

git clone https://dev-eole.ac-dijon.fr/git/zephir-parc.git
cd zephir-parc/outils

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) :

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

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

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

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.

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.