Installer LemonLDAP::NG n’est pas en soi très compliqué, étant donné que le projet fournit des paquets RPM et Debian, ainsi que des dépôts permettant les mises à jour automatiques. Ceci dit, on n’a pas forcément envie d’installer ces paquets sur sa machine et de tirer toutes les dépendances qui vont avec. Grâce à Docker, il est possible d’installer le logiciel dans un conteneur sans « contaminer » son propre système. C’est donc a priori une solution idéale pour tester un logiciel comme LemonLDAP::NG.
Comme moi, vous avez certainement entendu parler (beaucoup) de Docker, ces derniers temps, sauf si vous vivez dans une grotte numérique avec un vieux modem 56 K comme seul moyen de communication avec le monde extérieur. Il s’agit donc d’une technologie de conteneurs permettant l’exécution d’application sur un système d’exploitation en l’isolant des autres processus.
Après avoir suivi quelques tutoriels en ligne, j’ai donc décidé de construire ma propre image Docker pour LemonLDAP::NG. Pour cela, j’ai créé un fichier Dockerfile qui reproduit les étapes d’installation de LemonLDAP::NG sur un système Debian. Ce fichier est visible sur mon dépôt github :
Une fois que c’est fait, on peut construire simplement l’image Docker avec cette commande:
docker build --rm -t yourname/lemonldap-ng:version
Ayant construit l’image, je l’ai publié sur un dépôt Docker: https://hub.docker.com/r/coudot/lemonldap-ng/. Ainsi il est possible de le récupérer simplement avec un client Docker:
docker pull coudot/lemonldap-ng
Maintenant, on peut lancer un conteneur à partir de cette image pour tester LemonLDAP::NG. Tout d’abord, le SSO fonctionnant avec des noms DNS, il faut que l’hôte résolve les noms utilisés par défaut dans LemonLDAP::NG, il suffit pour cela d’ajouter cette ligne dans votre ficher /etc/hosts :
127.0.0.1 auth.example.com manager.example.com test1.example.com test2.example.com
Ensuite, il suffit de lancer un conteneur en associant le port 80 du conteneur au port 80 de sa machine (il faut donc qu’il n’y ait pas de processus local qui utilise le port 80):
docker run -d --add-host reload.example.com:127.0.0.1 -p 80:80 coudot/lemonldap-ng
Il ne reste plus qu’à accéder à http://auth.example.com et à se connecter avec les comptes de démonstration, par exemple dwho/dwho.
Essayez ça et dites-moi ce que vous en pensez. Si vous avez des commentaires ou des trucs à partager, faites-le ci-dessous et je me ferai un plaisir de vous répondre.