Erro na migração do servidor LDAP do Debian para o Ubuntu

Erro na migração do servidor LDAP do Debian para o Ubuntu

Estamos tentando migrar o ldap de um servidor Debian desatualizado para um servidor Ubuntu. Todas as tentativas de usar o slapcat, modificar a configuração manualmente e outros truques falharam. Acredito que o banco de dados antigo utiliza a estrutura bdb, que ao pesquisar descobri que não é mais suportada.

As etapas que executamos durante a migração são as seguintes:

Fiz backup e copiei o banco de dados ldap antigo usando slapcat.

sudo slapcat -n 0 -l config.conf
sudo slapcat -n 1 -l database.ldif

Em seguida, instalamos e reconfiguramos o slapd pelo dpkg no novo servidor, para corresponder às especificações de instalação do antigo.

Depois disso, usaríamos o slapadd para recuperar o banco de dados antigo.

sudo slapadd -F /etc/ldap/slapd.d -n 0 -l config.conf

O que produziu o seguinte erro

slapadd: could not add entry dn="cn=config" (line=1):
Closing DB...

O próximo comando tentamos restaurar o banco de dados.

sudo slapadd -F /etc/ldap/slapd.d -n 1 -l database.ldif

Mas novamente recebi vários erros:

mdb_id2entry_put: mdb_put failed: MDB_KEYEXIST: Key/data pair already exists (-30799) "dc=cs"
=> mdb_tool_entry_put: id2entry_add failed: err=-30799
=> mdb_tool_entry_put: txn_aborted! MDB_KEYEXIST: Key/data pair already exists (-30799)
slapadd: could not add entry dn="dc=cs" (line=1): txn_aborted! MDB_KEYEXIST: Key/data pair already exists (-30799)
Closing DB...

Neste ponto, tivemos erros ao carregar o arquivo de configuração. Tentamos convertê-lo da arquitetura bdb para mdb, mas ainda assim teríamos erros ao carregar o arquivo database.ldif.

Alguém teria um método confiável para migrar o banco de dados ldap para um novo servidor? Como a maioria dos guias está muito desatualizada.

Responder1

O erro ocorre devido ao backend de banco de dados desatualizado na maioria dos sistemas slapd antigos (<2.4.x). A conversão manual para hdb/bdb => mdb corrige esses problemas nas novas versões do slapd.

sudo slapcat -n 0 -l config.conf
sudo slapcat -n 1 -l database.ldif

Certifique-se de desligar o serviço slapd.

service slapd stop

Substitua todas as referências hdb/bdb por mdb nos arquivos config.conf e database.ldif.

Antes de usar o slapadd para carregar a configuração, esvazie o diretório slapd.d.

rm -rf /etc/ldap/slapd.d/*

Em seguida, carregue sua configuração mdb atualizada.

slapadd -F /etc/ldap/slapd.d -n 0 -l config.conf

Em seguida, certifique-se de esvaziar também o diretório ldap.

rm -rf /var/lib/ldap/*

Agora carregue o banco de dados mdb convertido.

slapadd -F /etc/ldap/slapd.d -n 1 -l database.ldif

Dê permissão openldap ao diretório slapd.d.

chown -R openldap:openldap /etc/ldap/slapd.d

Inicie o serviço slapd, agora você deve ter um banco de dados ldap migrado.

service slapd start

Confirme com tapa

slapcat -n 0
slapcat -n 1

informação relacionada