Ich möchte eine Master-Slave-Replikation zwischen zwei OpenLDAP-Servern einrichten.
Beim Ausführen ldapsearch -H ldapi:/// -Y EXTERNAL -b "cn=config" -LLL -Q "olcDatabase=*" dn
wird Folgendes erzeugt:
auf dem Master:
dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcOverlay={0}syncprov,olcDatabase={0}config,cn=config
dn: olcDatabase={1}hdb,cn=config
dn: olcOverlay={0}memberof,olcDatabase={1}hdb,cn=config
dn: olcOverlay={1}refint,olcDatabase={1}hdb,cn=config
dn: olcOverlay={2}syncprov,olcDatabase={1}hdb,cn=config
auf dem Slave:
dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcDatabase={1}mdb,cn=config
Auf dem Slave führe ich aus:ldapmodify -Y EXTERNAL -H ldapi:/// -f rp.ldiff
Meines rp.ldiff
sieht so aus:
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=003
provider=ldap://192.168.2.3:389/
bindmethod=simple
binddn="uid=rpuser,dc=redacted,dc=co"
credentials=redacted
searchbase="dc=redacted,dc=co"
scope=sub
schemachecking=on
type=refreshAndPersist
retry="30 5 300 3"
interval=00:00:05:00
Als ich das hinzugefügt habe, rpuser
habe ich ungefähr Folgendes verwendet:
dn: uid=rpuser,dc=redacted,dc=co
objectClass: simpleSecurityObject
objectclass: account
uid: rpuser
description: Replication User
userPassword: redacted
Und ich erhalte diese Ausgabe:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}hdb,cn=config"
ldap_modify: No such object (32)
matched DN: cn=config
Dasselbe passiert, wenn ich versuche, den Administratorbenutzer zu verwenden.
Wie überwinde ich dieses Problem, um die Einrichtung der Replikation abzuschließen?
Antwort1
Ich glaube nicht, dass das Problem daran liegt, dass Sie hinzufügen uid=rpuser,dc=redacted,dc=co
. Vielmehr schlägt Ihre Änderung von olcDatabase={1}hdb,cn=config
fehl. Ihr Slave (heutzutage ist es ein Verbraucher) hat nicht olcDatabase={1}hdb,cn=config
, sondern hat olcDatabase={1}mdb,cn=config
.
Randnotizen:
1. Besorgen Sie sich TLS. Sie senden Ihre Passwörter (sowie den Rest Ihres Verzeichnisses) unverschlüsselt über das Kabel.
2. slapo-memberOf
und Replikation interagieren ininteressante Wege.