==== Replicações Master-Slave ====
O OpenLDAP suporta replicações master-slave também, em que o master receberá as requisições de leitura e gravação e o slave receberá somente requisições de leitura, não sendo possível gravar dados nesta base.
==== Configurando Servidor Master ====
A configuração do servidor master se faz da maneira que fizemos aqui [[deb-syncrepl|Replicação LDAP utilizando SyncRepl]]
==== Configurando Servidor Slave ====
# apt-get install slapd ldap-utils
Antes de continuar teremos que definir uma senha para o superusuário da base cn=config:
# slappasswd -h {SSHA}
New password:
Re-enter new password:
{SSHA}kA9brSEK/lQr53YaiWB1TNgrTLCf3/JO
# cat admin.ldif
dn: cn=config
changetype: modify
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}kA9brSEK/lQr53YaiWB1TNgrTLCf3/JO
dn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcAccess
# ldapadd -H ldapi:/// -Y EXTERNAL -f admin.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
modifying entry "olcDatabase={0}config,cn=config"
modifying entry "olcDatabase={0}config,cn=config"
Agora vamos copiar o certificado do master
# mkdir /etc/ldap/tls
# scp 192.0.2.110:/etc/ldap/tls/cacert.pem /etc/ldap/tls/
Arquivo de replicação:
# cat repica-slave.ldif
dn: olcdatabase={1}hdb,cn=config
changetype: modify
replace: olcsyncRepl
olcsyncrepl: rid=003 provider=ldap://ldapmaster01.laboratorio.com.br type=refreshAndPersist interval=00:00:00:10 searchbase=dc=laboratorio,dc=com,dc=br filter="(objectClass=*)" scope=sub attrs="*" schemachecking=off bindmethod=simple starttls=yes tls_cacert=/etc/ldap/tls/cacert.pem binddn=cn=Replicator,dc=laboratorio,dc=com,dc=br credentials=senha retry="10 +"
# ldapmodify -x -D cn=admin,cn=config -w senha -f repica-slave.ldif
modifying entry "olcdatabase={1}hdb,cn=config"
Configuração do cliente
# cat /etc/ldap/ldap.conf
#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
#BASE dc=example,dc=com
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666
BASE dc=laboratorio,dc=com,dc=br
URI ldap://ldapmaster01.laboratorio.com.br
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
# TLS certificates (needed for GnuTLS)
#TLS_CACERT /etc/ssl/certs/ca-certificates.crt
TLS_CACERT /etc/ldap/tls/cacert.pem
TLS_REQCERT allow
==== Testando a Replicação ====
Para testar a Replicação no servidor LDAP Filial, pare o servidor e remova a base.
# service slapd stop
# rm -rf /var/lib/ldap/*
Reinicie o LDAP do servidor ldapmaster01 e veja que nossa base no slave já está populada.
# service slapd start
# ldapsearch -ZZ -LLL -D cn=admin,cn=config -w senha -b dc=laboratorio,dc=com,dc=br