Replicação no LDAP com slurp

Publicado por Andre Luiz Facina em 02/06/2008

[ Hits: 11.262 ]

 


Replicação no LDAP com slurp



No presente artigo irei explicar como fazer uma replicação da Base do OpenLDAP, bem como deixar um servidor como slave, para qualquer evento em que o servidor master ficar indisponível o servidor slave assuma a posição de master. :)

Primeiramente deve-se instalar o openldap tanto no servidor master, quanto no servidor slave (o arquivo de configuração slapd.conf deve ser o mesmo para os dois), exceto por algumas diretivas (veja passo 2).

Configurações:

1. Servidor master: após a criação da entrada admin na base, deve-se adicionar as seguintes diretivas no arquivo de configuração /etc/ldap/slapd.conf (atenção à indentação! Se estiver errada, a diretiva falhará):

replica uri=ldap://192.168.1.2:389
          binddn="cn=admin,dc=facina,dc=com,dc=br"
          bindmethod=simple
          credentials=senha_da_conta_admin

replogfile  /var/lib/ldap/replog.ldif

A primeira linha especifica o servidor slave, com a porta padrão utilizada pelo LDAP. A segunda linha define a conta administrativa do LDAP, nesse caso a conta administrativa é admin, do domínio facina.com.br.

O método "bindmethod=" quando especificada como "simple" orienta o slurp para autenticar com a senha definida em "credentials". A última linha define o arquivo de log. :)

2. Servidor slave: adicionar as seguintes diretivas no arquivo de configuração /etc/ldap/slapd.conf (a diretiva updatedn deve coincidir com a utilizada na configuração do master)

access to *
        by dn="cn=admin,dc=facina,dc=com,dc=br" write

updatedn "cn=admin,dc=facina,dc=com,dc=br"
updateref ldap://192.168.1.1

3. Agora deve-se fazer um backup ou tirar um snapshot da base master:

# slapcat > base.ldif

4. No servidor slave, basta fazer a cópia da base:

# ldapadd -x -D "cn=admin,dc=facina,dc=com,dc=br" -f base.ldif

ou

# slapadd -l base.ldif

(Antes, pare o serviço do ldap: /etc/init.d/slapd stop)

5. Iniciar os serviços slapd e slurpd no servidor master e slapd no servidor slave, para Debian (veja /etc/default/slapd):

# /etc/init.d/slapd start

6. Pronto! Agora é só fazer os testes e verificar se a réplica está funcionando. Muitos serviços como o SAMBA e autenticação PAM, permitem a utilização de 2 ou mais servidores LDAP.

O samba permite a utilização de múltiplos servidores LDAP, basta adicionar uma diretiva como essa:

passdb backend = ldapsam:"ldap://192.168.1.1/ ldap://192.168.1.2/"

Assim se o servidor LDAP master cair o samba irá buscar as informações no servidor slave, sendo um processo totalmente transparente para o usuário.

Pronto, :)

André Luiz Facina

Outras dicas deste autor

Apt-cacher - Sistema de cache para pacotes DEB

Convertendo uma chave privada OpenSSL para uma chave pública/privada do OpenSSH

Adicionando e apagando usuários no OpenBSD

Cisco - Reload, um comando simples que pode salvar sua vida

Adicionando SWAP no OpenBSD

Leitura recomendada

Prompt colorido no Xubuntu 9.04

XAMPP 1.8.1 não acessa o phpMyAdmin [Resolvido]

Comando find - Expressões pouco conhecidas

Atualizando a biblioteca glibc

Laço de Repetição - com while e for

  

Comentários
[1] Comentário enviado por cadoman em 05/06/2008 - 11:19h

Como faço a configuração para que o slave assuma no caso da autenticação PAM?

[2] Comentário enviado por jairus em 28/07/2008 - 08:33h

Olá !!!

Gostei da dica, irei utilizar . Agora e nos clientes devo configurar os arquivos que direcionam para o master, por exemplo o arquivo ldap.conf ? Isso nos clientes .


Me responda.

Abraços
Jairus Lopes

[3] Comentário enviado por makebabies em 02/09/2008 - 09:21h

Seguinte, eu estou tentando usar o tutorial porém acontece o seguinte erro:

Error: Malformed "replica" line in slapd config file, line 144
Warning: failed to add replica "192.168.0.2:389 - ignoring replica.


no final do arquivo slapd.conf do servidor Master tenho:

replogfile /var/lib/ldap/replog
replica uri=ldap://192.168.0.2:389
binddn="cn=admin,dc=projeto,dc=com"
bindmethod=simple credentials=123456

no Slave slapd.conf:

updatedn "cn=admin,dc=projeto,dc=com"
updateref ldap://192.168.0.1


Ja procurei no google e nao encontrei nenhuma resposta, apenas várias pessoas com o mesmo problema!

[4] Comentário enviado por makebabies em 03/09/2008 - 11:40h

resolvi, na linha replica é preciso que todos os parâmetros estejam em uma unica linha:
replica uri=ldap://192.168.0.2:389 binddn="cn=admin,dc=projeto,dc=com" bindmethod=simple credentials=123456

Depois disso o slurpd não deu nenhum erro, mas nao estava replicando nada...
Fiz algumas modificacoes na base e estava com tail -f /var/lib/ldap/replog porem nada era escrito no arquivo...

Consegui replicar usando o syncrepl (pelo que li é mais atual que o slurpd, posso estar enganado)



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts