A replicação do Open Directory pode não funcionar; "Limite de tamanho excedido" aparece em slapd.log

A replicação do Open Directory pode não funcionar. Quando isso ocorrer, entradas como estas aparecerão em /var/log/slapd.log

slapd[209]: do_syncrep2: rid=001 LDAP_RES_SEARCH_RESULT (4) Size limit exceeded slapd[209]: do_syncrep2: rid=001 (4) Size limit exceeded

Isso poderá ocorrer se o servidor do Open Directory estiver ativo por um longo período ou se for criada uma réplica quando houver mais de 11.000 objetos no armazenamento de dados do LDAP. 11.000 é o número máximo padrão de objetos que podem ser mostrados em uma busca.

Permita que o usuário _ldap_replicator substitua o limite de busca. Para fazer isso, altere a configuração do servidor LDAP em todos os servidores do Open Directory. Isso envolve a autenticação como administrador do diretório e a execução de alguns comandos de modificação do LDAP no Terminal. A base de buscas, também conhecida como contexto de nomenclatura, para o servidor LDAP também precisa ser conhecida.

As seguintes etapas podem ser usadas para fazer isso.

Primeiro, encontrar a base de pesquisa do servidor LDAP

Encontre a base de pesquisa do servidor LDAP. Geralmente, é o nome de domínio totalmente qualificado do servidor, com dc= incluído no início de cada etiqueta e os pontos alterados para vírgulas.

Por exemplo, um servidor com nome de host server.example.com teria uma base de busca padrão de "dc=server,dc=example,dc=com". A base de busca pode ser verificada consultando o próprio servidor LDAP com o seguinte comando do Terminal:

ldapsearch -x -LLL -b “” -s base namingContexts

Procure a linha que contém namingContexts; a base de busca estará após os dois pontos, como no exemplo de resultado abaixo.

dn: namingContexts: dc=server,dc=example,dc=com

Segundo, obter as credenciais do Kerberos para o administrador do diretório

O nome padrão para esse usuário é diradmin, mas o nome pode ter sido alterado quando o mestre do Open Directory foi criado. Para fazer isso, use o comando kinit no Terminal. Execute o seguinte comando, substituindo diradmin pelo nome correto do administrador do diretório, se necessário, e insira a senha quando solicitado. Não há resultado.

kinit diradmin

Em seguida, use ldapmodify no modo interativo no Terminal para fazer as alterações. Basta executar o seguinte comando no Terminal:

ldapmodify

Nota: isso resultará em algumas mensagens SASL e aguardará entrada. Se der tudo certo, o resultado SASL deverá ficar parecido com este:

SASL/GSSAPI authentication started SASL username: diradmin@REALM SASL SSF: 56 SASL data security layer installed.

Modificar a configuração

Por último, faça as modificações na configuração. Para isso, insira todo o texto mostrado abaixo na janela do Terminal como entrada para o comando ldapmodify. A base de busca deve ser substituída por [base de busca] abaixo. Os colchetes também precisam ser removidos.

dn: olcDatabase={1}bdb,cn=config changetype: modify add: olcLimits olcLimits: dn.exact="uid=_ldap_replicator,cn=users,[search base]" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited dn: olcDatabase={2}bdb,cn=config changetype: modify add: olcLimits olcLimits: dn.exact="uid=_ldap_replicator,cn=users,[search base]" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited

Agora, pressione as teclas Control e D.

Se tudo der certo, serão exibidas mensagens como as seguintes.

modifying entry "olcDatabase={1}bdb,cn=config" modifying entry "olcDatabase={2}bdb,cn=config"

Saiba mais

Alternativa para script de shell

Veja abaixo o texto de um script de shell que pode ser usado para automatizar o processo. Basta usar o comando kinit com o administrador do diretório conforme indicado acima e executar esse script. Consulte este artigo para ver sugestões de editores de texto.

#!/bin/sh nc=`ldapsearch -x -LLL -b "" -s base namingContexts | awk '/namingContexts/ {print $2}'` ldapmodify <

Este documento será atualizado quando houver mais informações disponíveis.

Data da publicação: