В настоящее время у нас есть один сервер OpenLDAP, использующий cn=config
бэкэнд. Мы хотели бы добавить второй сервер OpenLDAP и настроить их для репликации с несколькими мастерами. Что нам нужно сделать, чтобы
Пока что я сделал (после это руководство) является:
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 binddn="uid=ldapsync,ou=Special Accounts,dc=example,dc=com" credentials=xyz123 dn: olcOverlay=syncprov, olcDatabase=bdb, cn=config changetype: add objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov
Я проверил, что эти изменения были синхронизированы со вторым сервером, и что пользователь ldapsync может пройти аутентификацию и может видеть все данные, которые ему нужны. Однако данные bdb не синхронизируются ни в одном направлении. Что мне не хватает?
Эта ветка привел меня к мысли, что olcMirrorMode
необходимо разместить определение после в olcSyncrepl
линий. Я остановил серверы ldap и вручную отредактировал файлы ldif olcDatabase. Кажется, теперь репликация данных работает в обоих направлениях.