Aprende como programar en Perl un script que lee un archivo LDIF (LDAP Data Interchange Format) exportado desde openldap, para hacer migración de LDAP usando el lenguaje de programación Perl. Incluye código de ejemplo.
El siguiente código fuente escrito en el lenguaje de programación Perl, lee un archivo LDIF exportado desde openldap, captura los valores que nos interesan de cada objeto (en nuestro caso uid, mail y displayname), para ir mostrándolos en el terminal mientras se esta ejecutando y genera un archivo plano resultante con los valores que necesitábamos. La magia de entender y manipular amigablemente archivos LDIF para lectura y escritura la realiza el modulo Net::LDAP::LDIF de CPAN.
En Debian o derivados como ubuntu, deberemos instalar el paquete libnet-ldap-perl, para ello ejecutamos como usuario root: #apt install libnet-ldap-perl
Perl LDAP
[sourcecode language=»perl»]
#!/usr/bin/perl
# aptitude install libnet-ldap-perl
# Lee valores de archivo ldif
use Net::LDAP::LDIF;
$ldif = Net::LDAP::LDIF->new( "ldap.ldif", "r", onerror => ‘undef’ );
while ( not $ldif->eof( ) ) {
$entry = $ldif->ead_entry( );
if ( $ldif->error ( ) ) {
print "Error msg: ", $ldif->error( ), "\n";
print "Error lines:\n", $ldif->error_lines( ), "\n";
} else {
$uid = $entry->get_value("uid");
$mail = $entry->get_value("mail");
$displayname = $entry->get_value("displayname");
$result_ldif = "$uid,$mail,$displayname \n";
print $result_ldif; open (ARCHIVO_FINAL,">> result_ldif.csv") || die "No se puede abrir el archivo\n";
print ARCHIVO_FINAL $result_ldif;
}
}
$ldif->done ( );
[/sourcecode]
El anterior es un código de programación corto como suelen ser en Perl, pero nos permite conocer e iniciar todos los trabajos que podamos necesitar para manipular o realizar migraciones de LDAP, usando archivos LDIF. Este código también nos permite conocer sobre el uso de módulos CPAN y trabajos de manipulación de archivos con Perl.
Si te gusto ó sirvió aprender sobre Perl con LDAP y LDIF comparte esta entrada en tus redes para que más personas tengan la misma oportunidad.