alexmontoanelli

a place to have some fun..

Replicando Bases Ldap em 10 minutos

Buenas.

Configurações para replicar bases ldap usando o método syncrpl.

No Servidor ldap Master adicione as seguintes linhas no slapd.conf, nas respectivas sessões:

moduleload      syncprov

index   entryCSN        eq
index   entryUUID       eq

overlay syncprov
syncprov-checkpoint     100     10
syncprov-sessionlog     100

As 3 últimas linhas devem ir no final no arquivo abaixo das especificações dos bancos.

As linha ‘syncprov-checkpoint     100     10′ diz que é para forçar sincronização a cada 100 gravações, ou a cada 10 minutos. E a linha ‘syncprov-sessionlog     100′ mantem um registro das ultimas 100 entradas sincronizadas.

Note que adicionamos duas entradas ‘index’, então devemos parar o slapd, e reindexar a base com um ‘slapindex -vv’. Após um chown -R ldap:ldap /var/db/ldap/*, e subimos o serviço novamente.

Do lado dos ‘slaves’, você deve adicionar o seguinte:

index   entryCSN        eq
index   entryUUID       eq

syncrepl      rid=001
searchbase="dc=dominio,dc=com"
provider="ldaps://endereco.do.servidor.master"
binddn="cn=Manager,dc=dominio,dc=com"
bindmethod=simple
credentials="minhasenha"
filter="(objectClass=*)"
attrs="*,+"
#type="refreshOnly"
type="refreshAndPersist"
interval=00:00:05:00
retry="60 10 300 3"
scope=sub

updateref       "ldaps://endereco.do.servidor.master"

Explicando as linhas:

rid 001: é o identificador interno, você pode ter várias sessões para sincronizar, esse número deve ser único para cada entrada, e não deve ter mais que 3 números;

searchbase: apartir de qual nó, do serivdor ‘master’ deve-se iniciar o sincronismo;
provider: é o endereço do servidor master;

binddn: bindmethod e credentials são os dados referentes a autenticação;
filter, são quais objetos que desejamos sincronizar, objectClass=*, vai sincronizar todos os objetos;

attrs: especifica quais os atributos a serem sincronizados, ‘*,+’ irá sincronizar todos os atributos;

type, pode vir a ser refreshOnly ou refreshAndPersist, no modo refreshAndPersist, é iniciado umaconexão ao servidor master, e a cada nova alteração no ‘master’ a mesma já e atualizada no ‘slave’, no modo refreshOnly, o sincronimo ocorrerá apenas no interfao especificado pela variavel ‘interval;

interval: O tempo em que se deve conectar no master para sincronizar os dados, seu formato é ‘dd:hh:mm:ss’ onde ‘dd’ => dia, ‘hh’ => hora, ‘mm’ => minutos, ‘ss’ => segundos. Um valor como ’00:00:05:00′, representa uma atualização a cada 5 minutos

retry: especifica o tempo entre tentativas caso ocorra uma falha de conexão para a sincronização. O valor ’60 10 300 3′, diz que é para executar 10 tentativas a cada 60 segundos, e caso estas falhem, é para executar mais 3 tentativas a cada 300 segundos.

scope=sub: especifica o nivel de sincronização, pode ser ‘sub,child, one ou  base’

Após tudo configurado basta reiniciar o slave, e partir pro abraço.

Não esqueça de copiar a base atual do master, via ‘slapcat’ para o slave, inportando com um ‘slapadd’.
A base no slave deve estar vazia antes da importação, e após importar, atribua o usuário ldap aos arquivos gerados no diretório onde está o banco.

Abraços

June 25th, 2008 by alexm
Posted in freebsd, linux

2 Responses to “Replicando Bases Ldap em 10 minutos”

  1. Edison de Azevedo Filho Says:

    Olá, eu tenho uma dúvida um pouco mais simples.
    Eu já tenho um servidor com OpenLDAP com Samba, e eu montei um servidor mais novo e vou trocá-lo.

    Já fiz toda a instalação do openldap no servidor novo, e já está funcionando. Agora eu só preciso exportar os usuários do servidor antigo e importá-los para o novo. Como eu faria isso de um modo mais simplificado?

    Um abraço,
    edison.

  2. alexm Says:

    Olá Edision,
    Bom um slapcat > /tmp/backup no servidor em produção e um
    slapadd -b ‘ou=dominio,dc=com,dc=br’ < /tmp/backup no servidor novo deve resolver ser problema.
    Note que ao executar o novo, o slapd não deve estar rodando, e não deve-se ter criado a base inicial.
    Lembre-se tambem de manter o schemas atualizados entre os 2 servidores.
    Abraço

Leave a Reply