Synchronisation depuis l'Annuaire Académique Fédérateur - AAF

Fonctionnement général de la synchronisation

  1. la machine ODI[1] génère une archive tar.gz par établissement à synchroniser ;

  2. dès l'archive terminée, elle est envoyée sur le module Zéphir accompagnée d'une notification ;

  3. le module Zéphir envoie l'archive sur le module Scribe auquel elle a été associée ;

  4. le module Scribe lance l'import de l'archive (mode automatique) ou la stocke pour l'EAD (mode manuel).

Truc & astuceComment récupérer les fichier tar.gz ?

Information et documentation à retrouver sur le site intranet de diffusion de l'académie de Toulouse :

http://nservdiff.in.ac-toulouse.fr/appli/infra/versions/ver_majaaf.html

Guide utilisateur 1.5 en version format privateur .doc :

http://nservdiff.in.ac-toulouse.fr/appli/infra/documentation/aaf/Guide_UtilisateurV1_5.doc

Guide d'exploitation 1.5 en version format privateur .doc :

http://nservdiff.in.ac-toulouse.fr/appli/infra/documentation/aaf/Dossier_exploitationV1_5.doc

Association archive - module Scribe

L'association d'un module Scribe avec son archive se fait pour l'instant manuellement, à l'aide du code python suivant :

import xmlrpclib

z = xmlrpclib.Server("https://utilisateur:codeSecret@adresse_zephir:7080")

z.aaf.add_file(idZéphir, 'nomArchive.tar.gz')

Pour afficher la liste des archives associées au module Scribe possédant l'identifiant Zéphir idZéphir :

z.aaf.get_list(idZéphir)

Pour supprimer l'association entre l'archive et le module Scribe :

z.aaf.del_file('nomArchive.tar.gz')

Exemple

Dans cet exemple, on associe l'archive 0000001a.tar.gz au module Scribe possédant l'identifiant 58 dans l'application web Zéphir :

import xmlrpclib

z = xmlrpclib.Server("https://user:password@adresse_zephir:7080")

z.aaf.add_file(58, '0000001A.tar.gz')

Pour afficher la liste des archives associées au module Scribe possédant l'identifiant 58 dans l'application web Zéphir :

z.aaf.get_list(58)

Pour supprimer l'association entre l'archive 0000001A.tar.gz et le module Scribe :

z.aaf.del_file('0000001A.tar.gz')

Attention

L'utilisateur Zéphir utilisé pour effectuer les manipulations décrites ci-dessus doit posséder le droit Gestion de la synchronisation AAF dans l'application Zéphir.

Envoi des fichiers sur le module Zéphir

Les archives générées (de la forme <numéro_UAI>.tar.gz) doivent être envoyées dans le répertoire : /var/lib/zephir/aaf.

L'envoi des fichiers peut être réalisé par la méthode de votre choix : rsync, scp, ...

Une fois l'archive envoyée, il faut notifier cet envoi au module Zéphir.

Cela peut être fait par les lignes python suivantes :

import xmlrpclib

z = xmlrpclib.Server("https://utilisateur:codeSecret@adresse_zephir:7080")

z.aaf.notify_upload('numeroUAI.tar.gz')

Attention

L'utilisateur Zéphir utilisé pour effectuer les manipulations décrites ci-dessus doit posséder le droit Gestion de la synchronisation AAF dans l'application Zéphir.

Gestion de l'archive sur le module Scribe

Dès que le module Zéphir est notifié de l'arrivée d'une nouvelle archive, il prépare son envoi vers le module Scribe qui lui est associé (sauf si l'archive possède la même signature que sa version précédente).

Le module Scribe récupère l'archive lors de sa connexion au module Zéphir.

Il est possible de configurer la façon dont le module importe les données de l'archive récupérée.

Cela se paramètre dans l'interface de configuration du module, en mode expert, dans l'onglet Ent.

La variable Mode de synchronisation AAF permet de choisir entre deux modes :

  • automatique : l'importation des fichiers est exécutée dès leur réception ;
  • manuel : l'archive est stockée et l'importation est prête à être exécuté par l'EAD (menu Outils / Synchronisation AAF).

La variable Envoi d'un courrier électronique en cas d'erreur active l'envoi d'un courrier électronique en cas d'erreur lors de l'import manuel ou automatisé des fichiers AAF. Le ou les destinataires de ce message sont à ajouter dans Adresse(s) électronique(s) à utiliser.

Si le module Scribe est configuré en mode manuel, l'import des archives envoyées sur le module Scribe se réalise à la demande en allant dans l'EAD.

Le formulaire d'import est accessible par le menu Outils / Synchronisation AAF.

Importation des fichiers AAF synchronisés via l'EAD
Importation des fichiers AAF synchronisés via l'EAD

Par défaut l'import est réalisé en mode Mise à jour des bases, mais il est possible de l'effectuer en mode Importation annuelle des bases en cochant la case Importer les fichiers en mode "annuel".

  • Mise à jour des bases : ajoute les utilisateurs et groupes manquants sans modifier les groupes existants ;

  • Importation annuelle des bases : ajoute les utilisateurs et groupes manquants après avoir purgé les options (import des élèves) ou les équipes pédagogiques (import des professeurs).

Truc & astuce

L'import peut également être exécuté en ligne de commande en utilisant le script synchro_aaf avec comme paramètre l'un des fichiers cité dans /var/lib/eole/aaf/aaf_files/.

Exemple

Exemple de boucle en bash[2] qui permet de traiter tous les fichiers :

for f in `cat /var/lib/eole/aaf/aaf_files`; do

     /usr/bin/synchro_aaf $f

done

Suivi de la synchronisation et de l'importation

Agent Zéphir

Un agent Zéphir permet de vérifier le bon déroulement de l'envoi des fichiers sur le module.

L'agent de surveillance de la synchronisation des fichiers AAF
L'agent de surveillance de la synchronisation des fichiers AAF

Application web Zéphir

Des informations sont également disponibles en allant dans Logs complets depuis la page d'état de l'un des serveurs Scribe et en filtrant sur divers.

Surveillance de la prise en compte des fichiers AAF dans Zéphir
Surveillance de la prise en compte des fichiers AAF dans Zéphir

Rapports d'importation

L'importation des fichiers AAF synchronisés utilise les même scripts que l'importation habituelle, on retrouve donc les rapports de l'importation AAF aux endroits suivants :

  • page d'accueil de l'EAD (/usr/share/ead2/backend/tmp/importation/rapport.txt) ;
  • répertoire personnel de l'utilisateur admin : /home/a/admin/perso/importation ;
  • journaux complets : /var/log/eole/importation.log.