
Migrer un annuaire OpenLDAP en changeant de version

C’est un dossier qui m’a pris la journée, sachant que le matin même je ne connaissais qu’à peine le concept d’annuaire LDAP. Passer d’une version 2.4.25 compilée et installée dans un dossier particulier (sans parler des dossiers base, log, pid), à une version 2.4.40 packagée pour CentOS 7 avec sa propre organisation. Beaucoup de choses différentes, et donc, un pense-bête en français parce que putain, ça a été douloureux.
Le plus gros problème que j’ai rencontré, au final, c’est la version de BerkeleyDB, le format utilisé pour le stockage des comptes, qui râle quand c’est différent d’une machine à l’autre. On peut donc s’en sortir avec le paquet migrationtools. Pour ce faire, je l’ai installé sur les deux machines. Ensuite, voilà ce que j’ai fait.
Sur l’ancien serveur : on coupe OpenLDAP, on copie, on lance certaines commandes sur la copie :
1 2 3 4 5 |
/etc/init.d/slapd stop cp -r /home/databases/openldap /tmp/ cd /tmp/openldap db_checkpoint -1 db_recover |
Les deux dernières commandes enlèvent l’indicateur numéro de version de BerkeleyDB. On copie ensuite le dossier sur le nouveau serveur à son endroit définitif, et on lance les commandes suivantes :
1 2 3 |
db_recover -e db_upgrade chown -R ldap: . |
Le switch -e permet de placer l’indicateur de la nouvelle version de BerkeleyDB. On vérifie/modifie les chemins dans les fichiers de configuration pour s’assurer que tout soit pris en compte, et paf, ça fait des chocapic :
1 |
systemctl start slapd |
Voilà, bon ça fait pas de moi un dieu de OpenLDAP, mais ce serveur qui permet de gérer des comptes FTP pour un client dont l’ancien serveur (virtuel, sur un cluster HyperV à bout de souffle) était en fin de vie est reparti pour quelques années de plus, sans avoir à tout reconcevoir de zéro, c’est pas magnifique ça ?
J’ai trouvé l’astuce en anglais sur ce site, après avoir souffert pour transférer l’installation.
Salut,
Il est beaucoup plus simple d’utiliser slapcat / slapadd pour la migration de serveurs OpenLDAP. Ce sont les outils dédiés à cela, et c’est le format d’échange standard pour LDAP.