/etc/ldap/slapd.conf :
moduleload syncprov
database bdb
suffix dc=villa,dc=local
index objectclass,entryCSN,entryUUID eq
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
limits dn.exact="cn=replicant,ou=services,dc=example,dc=com"
time=unlimited
size=unlimited
access to *
by cn=replicant,ou=services,dc=example,dc=com read
by none break
replicant.ldif :
# replica, services, example.com dn: cn=replicant,ou=services,dc=example,dc=com objectClass: organizationalRole objectClass: top objectClass: simpleSecurityObject userPassword:: e1NIQX04UWVNNjVTM3IvQjUzc3NWWSs4djRuK3hmN289 cn: replica
cd /var/lib/ldap scp -r master:/etc/ldap/. . rm -rf slapd.d
/etc/ldap/slapd.conf :
database xxx
rootdn "cn=admin,dc=example,dc=com"
syncrepl rid=100
provider=ldap://ldap1.example.com
searchbase=dc=example,dc=com
type=refreshAndPersist
retry="60 10 600 +"
scope=sub
bindmethod=simple
binddn="cn=replicant,ou=services,dc=example,dc=com"
credentials="replica"
updateref ldap://ldap1.example.com
Master:
service slapd start
Slave:
service slapd stop rm -f /var/lib/ldap/* chown openldap:openldap /var/lib/ldap/* service slapd start
/etc/ldap/slapd.conf :
wie oben, aber syncrepl erweitert um:
filter="(|
(objectclass=organization)
(objectclass=organizationalunit)
(objectclass=account)
)"
attrs="objectclass,cn,ou,uid,userpassword"
schemachecking=off
Schreiboperationen vom Slave an den Master weiterleiten
/etc/ldap/slapd.conf :
moduleload back_ldap
overlay chain
chain-uri "ldap://ldap1.example.com"
chain-idassert-bind bindmethod="simple"
binddn="cn=admin,dc=example,dc=com"
credentials="villa"
mode="self"
chain-return-error TRUE
chain-rebind-as-user TRUE
/etc/ldap/slapd.conf :
zum letzten mal hier, vor der ersten database
database config rootdn cn=admin,cn=config rootpw admin
mkdir slapd.d slaptest -f slapd.conf -F slapd.d chown -R openldap:openldap slapd.d/ slapcat -b cn=config | grep '^dn'