我们目前有一个使用cn=config后端的OpenLDAP服务器。 我们想添加第二台OpenLDAP服务器,并将其configuration为多主机复制。 我们需要做些什么
到目前为止,我所做的(遵循本指南 )是:
dn:cn = config changetype:修改 replace:olcServerID olcServerID:1 ldap://foo.example.com olcServerID:2 ldap://bar.example.com - replace:olcSaslSecProps olcSaslSecProps:noanonymous dn:cn = module,cn = config changetype:修改 olcModuleLoad:syncprov dn:olcDatabase = config,cn = config changetype:修改 olcRootDN:cn = admin,cn = config olcRootPW:abc123 添加:olcSyncRepl olcSyncRepl:rid = 001 provider = ldap://foo.example.com bindmethod = simple binddn =“cn = admin,cn = config”credentials = abc123 searchbase =“cn = config” type = refreshAndPersist retry =“5 5 300 5”timeout = 3 olcSyncRepl:rid = 002 provider = ldap://bar.example.com bindmethod = simple binddn =“cn = admin,cn = config”credentials = abc123 searchbase =“cn = config” type = refreshAndPersist retry =“5 5 300 5”timeout = 3 - 添加:olcMirrorMode olcMirrorMode:TRUE dn:olcOverlay = syncprov,olcDatabase = config,cn = config changetype:add objectClass:olcOverlayConfig objectClass:olcSyncProvConfig olcOverlay:syncprov
这使configuration同步在两个方向上工作。
dn:olcDatabase = bdb,cn = config changetype:修改 添加:olcMirrorMode olcMirrorMode:TRUE - 添加:olcSyncrepl olcSyncrepl:rid = 001 provider = ldap://foo.example.com searchbase = dc = example,dc = com binddn =“uid = ldapsync,ou =特殊帐户,dc = example,dc = com”credentials = xyz123 olcSyncrepl:rid = 002 provider = ldap://bar.example.com searchbase = dc = example,dc = com binddn =“uid = ldapsync,ou =特殊帐户,dc = example,dc = com”credentials = xyz123 dn:olcOverlay = syncprov,olcDatabase = bdb,cn = config changetype:add objectClass:olcOverlayConfig objectClass:olcSyncProvConfig olcOverlay:syncprov
我确认这些更改已同步到第二个服务器,并且ldapsync用户可以进行身份validation,并可以看到所需的所有数据。 但是,bdb数据似乎没有在任何方向上同步。 我错过了什么?
这个线程让我想到了olcMirrorMode定义需要放在olcSyncrepl行之后。 我停止了ldap服务器,并手动编辑了olcDatabase ldif文件。 这似乎已经得到了双向数据的复制。