Des nouvelles pas très fraîches...

En effet, la version 2.0 de LSC est sortie en juillet 2012, il y a plus de 8 mois. Je profite de la sortie la semaine dernière de la version 2.0.2 (deuxième version mineure de la branche 2.0) pour présenter ce projet très bien connu des administrateurs LDAP qui savent installer des logiciels java, donc globalement inconnu...

LSC et toi tu le sais pas ?

Commençons par le début, c'est quoi LSC ? LSC signifie LDAP Synchronization Connector, ce qui devient plus significatif sur son utilité : c'est un moteur de synchronisation LDAP.

LSC permet de synchroniser des fichiers plats (CSV), des bases de données et des annuaires, dans les deux sens. Il s'agit d'une vraie synchronisation avec une phase de comparaison des données sources et des données cibles afin de calculer les modifications à appliquer sur la destination.

LSC permet par exemple de synchroniser une base de données RH avec son annuaire d'entreprise, de synchroniser OpenLDAP et Active Directory (et avec quelques subtilités, en incluant les mots de passe), de générer des mots de passe Samba, d'importer des fichiers CSV dans un annuaire ou encore de pousser des données LDAP dans une bases de données.

LSC ne propose pas d'interface graphique, tout se fait comme au siècle dernier, à la main, mais rassurez-vous il s'agit bien d'une technologie très évoluée !

LSC strikes back

La nouvelle version n'est pas une version 2.0 de complaisance, les évolutions depuis la version 1.2 sont assez significatives. Les plus importantes sont les suivantes :

  • Modification du format de configuration (fini le fichier de properties java, place au XML)
  • Support de la synchronisation au fil de l'eau avec un annuaire compatible SyncRepl en source
  • Script de démarrage et d'arrêt
  • Nouveaux scripts de supervision avec gestion des données de performances (oh les beaux graphiques)
  • Bases de données en destination
  • Support de groovy

La configuration en XML peut sembler un choix discutable, mais elle a le mérite de clarifier le paramétrage du connecteur et de permettre une meilleure séparation des informations de connexion et de la définition des tâches de synchronisation.

De plus, un validateur permet facilement de s'assurer que la configuration est consistante avant de lancer le connecteur.

La documentation en ligne détaille toutes les balises qui peuvent être utilisées.

Test me if you can

Vous n'êtes pas convaincu ? D'avance vaincu ? Allons, le plus simple est de tester. LSC propose un tutoriel très simple permettant de synchroniser un fichier CSV dans un annuaire LDAP OpenDJ.

Et comme vous m'êtes sympathiques, voici ce tutoriel en français.

Première étape, télécharger LSC. Là c'est très simple, il suffit d'aller sur la page de téléchargement. On suppose que vous avez java en version 6 minimale installée sur votre poste ou votre serveur de test.

Installer LSC :

$ unzip lsc-core-2.0*-dist.zip
$ cd lsc-2.0*

Maintenant on se rend dans le dossier du tutoriel :

$ cd sample/hsqldb

Le fichier sample.csv contient les données que nous allons synchroniser dans l'annuaire. Si, si, vous pouvez vérifier.

Ces données doivent être importées dans la base de données interne (HSQLDB) :

$ bin/lsc-sample --import sample.csv

À présent, lancer l'annuaire de démonstration dans une autre console (la commande ne rend pas la main) :

$ bin/lsc-sample --start-ldap-server

Puis lancer la synchronisation depuis la première console :

$ bin/lsc-sample --run

Et voilà, les données sont synchronisées. Si vous ne me croyez pas, ouvrez un navigateur LDAP sur l'annuaire de test, supprimez des données et relancez la synchronisation.

Et pour d'autres tests, vous pouvez également modifier le fichier CSV d'entrée. Dans ce cas il faut penser à le réinsérer dans la base avec :

$ bin/lsc-sample --import sample.csv

Voilà, LSC fini

Vous savez désormais qu'il existe une solution de remplacement pour tous vos scripts maison en Perl, Ruby, ou pire PHP qui synchronisent vos données entre votre annuaire et le reste du monde. Je ne peux que vous inviter à rejoindre la communauté et nous aider à améliorer le produit ou la documentation !