我想在 2 個 OpenLDAP 伺服器之間設定主從複製。
運行ldapsearch -H ldapi:/// -Y EXTERNAL -b "cn=config" -LLL -Q "olcDatabase=*" dn
會產生這樣的結果:
關於主人:
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
在奴隸身上:
dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcDatabase={1}mdb,cn=config
在奴隸上我執行:ldapmodify -Y EXTERNAL -H ldapi:/// -f rp.ldiff
我的rp.ldiff
看起來像這樣:
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
當我添加時,rpuser
我使用了這樣的東西:
dn: uid=rpuser,dc=redacted,dc=co
objectClass: simpleSecurityObject
objectclass: account
uid: rpuser
description: Replication User
userPassword: redacted
我得到這個輸出:
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
如果我嘗試使用管理員用戶,也會發生同樣的情況。
如何克服此問題以完成複製設定?
答案1
我不認為問題在於您添加uid=rpuser,dc=redacted,dc=co
.相反,您的修改olcDatabase={1}hdb,cn=config
失敗了。你的奴隸(現在是消費者。)沒有olcDatabase={1}hdb,cn=config
,但有olcDatabase={1}mdb,cn=config
。
附註:
1. 為自己取得一些 TLS。您將透過網路以明文形式發送密碼(以及目錄的其餘部分)。
2.slapo-memberOf
與複製相互作用有趣的方式。