Replicação no LDAP com slurp

Publicado por Andre Luiz Facina em 02/06/2008

[ Hits: 11.417 ]

 


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

Bootchart: Monitorando o boot do sistema Linux

Ajustando o delay de repetição do teclado

Hardening no OpenBSD

Migrando para o Ext4, o novo file system Linux

GlusterFS - Cluster de Filesystem no Linux

Leitura recomendada

Como rodar um Shell Script como se fosse um comando

Colocando wallpaper automático em horários alternativos

Corrigindo erro do Virtualbox 3.2.4 no Ubuntu 10.04: "Kernel driver not installed (rc=-1908)"

MAME no Ubuntu 12.04 - Instalação com GNOME Video Arcade front-end

Atualizando seu Linux Mint

  

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