Replicação no LDAP com slurp
Dica publicada em Linux / Introdução
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á):
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)
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
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
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
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