我想在两个 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
和复制交互有趣的方式。