我们目前有一个使用cn = config后端的OpenLDAP服务器.我们想添加第二个OpenLDAP服务器并配置它们以进行多主机复制.我们需要做些什么
>在现有服务器上启用复制
>使用现有数据初始化新服务器
到目前为止,我所做的(在this guide之后)是:
同步配置
dn: cn=config changetype: modify replace: olcServerID olcServerID: 1 ldap://foo.example.com olcServerID: 2 ldap://bar.example.com - replace: olcSaslSecProps olcSaslSecProps: noanonymous dn: cn=module,cn=config changetype: modify olcModuleLoad: syncprov dn: olcDatabase=config,cn=config changetype: modify olcRootDN: cn=admin,cn=config olcRootPW: abc123 add: 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 - add: olcMirrorMode olcMirrorMode: TRUE dn: olcOverlay=syncprov,olcDatabase=config,cn=config changetype: add objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov
这使得配置同步在两个方向上都有效.
同步数据
dn: olcDatabase=bdb,cn=config changetype: modify add: olcMirrorMode olcMirrorMode: TRUE - add: olcSyncrepl olcSyncrepl: rid=001 provider=ldap://foo.example.com searchbase=dc=example,dc=com binddn="uid=ldapsync,ou=Special Accounts,dc=example,dc=com" credentials=xyz123 olcSyncrepl: rid=002 provider=ldap://bar.example.com searchbase=dc=example,dc=com" credentials=xyz123 dn: olcOverlay=syncprov,olcDatabase=bdb,cn=config changetype: add objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov
我确认这些更改已同步到第二台服务器,并且ldapsync用户可以进行身份验证并可以查看所需的所有数据.但是,bdb数据似乎没有在任何一个方向同步.我错过了什么?
This thread让我想到olcMirrorMode定义需要放在olcSyncrepl行之后.我停止了ldap服务器并手动编辑了olcDatabase ldif文件.现在似乎已经在两个方向上复制了数据.