Banco de dados LDAP de backup

2

Estou tentando fazer backup de um servidor LDAP da versão 2.4.23 para um novo 2.4.40. Durante a configuração inicial do pacote me fazem algumas perguntas que eu respondo com fatos reais sobre o banco de dados, procurando obter a mesma configuração do servidor antigo. Mas assim que termino a configuração, é perceptível que ela não produziu a configuração esperada.

Aqui está a configuração do servidor antigo (adquirido com slapcat -n0 ):

dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/slapd/slapd.args
olcPidFile: /var/run/slapd/slapd.pid
structuralObjectClass: olcGlobal
entryUUID: cde5ce8a-bf8f-1030-9594-7f29588dac90
creatorsName: cn=config
createTimestamp: 20111220195151Z
olcLogLevel: Stats
olcTLSCertificateFile: /etc/ssl/certs/ufpa.br.crt
olcTLSCertificateKeyFile: /etc/ssl/private/ufpa.br.key
olcToolThreads: 4
olcSizeLimit: unlimited
entryCSN: 20111222143131.011291Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20111222143131Z

dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}syncprov
structuralObjectClass: olcModuleList
entryUUID: cdeca534-bf8f-1030-959c-7f29588dac90
creatorsName: cn=admin,cn=config
createTimestamp: 20111220195151Z
entryCSN: 20111220195151.317803Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20111220195151Z

dn: cn=schema,cn=config
objectClass: olcSchemaConfig
cn: schema
structuralObjectClass: olcSchemaConfig
entryUUID: cde86cda-bf8f-1030-9597-7f29588dac90
creatorsName: cn=admin,cn=config
createTimestamp: 20111220195151Z
entryCSN: 20111220195151.290145Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20111220195151Z

E é isso que recebo do servidor recém-instalado (com slapcat ):

dn: dc=ufpa,dc=br
objectClass: top
objectClass: dcObject
objectClass: organization
o: UFPA
dc: ufpa
structuralObjectClass: organization
entryUUID: 90e79216-16d2-1037-8dbb-11462ab3e25c
creatorsName: cn=admin,dc=ufpa,dc=br
createTimestamp: 20170816132842Z
entryCSN: 20170816132842.412456Z#000000#000#000000
modifiersName: cn=admin,dc=ufpa,dc=br
modifyTimestamp: 20170816132842Z

dn: cn=admin,dc=ufpa,dc=br
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9RC9YcU5KVFF1UHB0c0Nkc2pObUgrV2NSZHFVM3JWUkI=
structuralObjectClass: organizationalRole
entryUUID: 90e8e2b0-16d2-1037-8dbc-11462ab3e25c
creatorsName: cn=admin,dc=ufpa,dc=br
createTimestamp: 20170816132842Z
entryCSN: 20170816132842.421067Z#000000#000#000000
modifiersName: cn=admin,dc=ufpa,dc=br
modifyTimestamp: 20170816132842Z

Tentar importar os arquivos gerados pelo servidor antigo gera isso:

slapadd: could not add entry dn="cn=config" (line=1):
_                       0.35% eta   none elapsed            none spd   2.0 M/s
Closing DB...

E se eu tentar importar apenas as informações dos usuários e dos computadores, obtenho o seguinte:

slapadd: line 1: database #1 (dc=ufpa,dc=br) not configured to hold "o=UFPA"; no database configured for that naming context
_                       0.00% eta    31s elapsed            none spd   1.9 M/s
Closing DB...

Eu também joguei o banco de dados original usando ldapsearch -x -D "cn=admin,o=UFPA" -w 'admin_passwd' -b "o=UFPA" -H ldap://localhost -LLL "*" "+" > ldap_dump.ldif

E tente restaurar usando ldapadd -Wx -D "cn=admin,dc=ufpa,dc=br" -h localhost -f ldap_dump.ldif

Mas isso é o que eu recebo:

adding new entry "o=UFPA"
ldap_add: Server is unwilling to perform (53)
        additional info: no global superior knowledge

Alguém pode me ajudar com esse problema?

    
por hiagop 17.08.2017 / 15:49

2 respostas

1

Quando você quiser restaurar um backup completo de cn = config de outro servidor, é melhor começar com um diretório de configuração vazio (na minha opinião). No Debian e no Ubuntu, o instalador irá criar a configuração base para você, o que pode ser o motivo pelo qual ele falha ao importar cn=config , porque ele já existe.

Aqui estão 2 opções:

  • ignorar erros e continuar com a importação usando a opção -c para slapadd
  • inicie com o diretório de configuração em branco e importe todas as configurações do arquivo ldif.

Aqui está como eu fiz isso.

No servidor antigo:

slapcat -b cn=config > config.ldif

No novo servidor:

# backup current config
tar -czf /var/backups/openldap.config-$(date +%y%m%d).gz /etc/ldap/slapd.d
# delete current config
rm -rf /etc/ldap/slapd.d/*
# import config file copied from old server
slapadd -F /etc/ldap/slapd.d/ -b cn=config -l config.ldif

Você obtém o erro no global superior knowledge porque o OpenLDAP não possui um banco de dados para armazenar dn: dc=ufpa,dc=br . Se ele estiver configurado corretamente no servidor antigo, o método acima deve trazer tudo para o novo servidor. Então você também pode fazer backup e restaurar esse banco de dados como segue.

No servidor antigo:

slapcat -b dc=ufpa,dc=br > ufpa.br.ldif

No novo servidor:

# backup current database
tar -czf /var/backups/openldap.data-$(date +%y%m%d).tgz /var/lib/ldap
# delete current database
rm -rf /var/lib/ldap/*.*
# restore backup from old server
slapadd -b ufpa.br.ldif

Se você receber um erro que não foi possível adicionar a entrada dn="dc = ufpq, dc = br", então algo no backup de configuração provavelmente já o criou. Tente usar a opção -c no último comando slapadd .

    
por 30.11.2017 / 20:19
0

As pessoas da Sane usam syncrepl para replicar / fazer backup de seus bancos de dados.

Você omitiu muitos detalhes para continuar sendo ajudado. Por exemplo, isso não pode possivelmente o todo, e certamente não tem todas as partes relevantes, da sua configuração de servidores antigos. Não tem sufixos configurados.

    
por 19.08.2017 / 04:13

Tags