Настройка мультимастерной репликации openldap с помощью cn=config

В настоящее время у нас есть один сервер OpenLDAP, использующий cn=config бэкенд. Мы хотели бы добавить второй сервер OpenLDAP и настроить их для репликации с несколькими хозяевами. Что нам нужно сделать, чтобы

  1. включить репликацию на существующем сервере и
  2. инициализировать новый сервер с существующими данными

Пока что я сделал (следуя этому руководству):

Синхронизация конфигурации

dn: cn = config тип изменения: изменить заменить: olcServerID
olcServerID: 1 ldap://foo.example.com
olcServerID: 2 ldap://bar.example.com
- заменить: olcSaslSecProps
olcSaslSecProps: анонимный dn: cn = модуль,cn= изменение типа конфигурации: изменить olcModuleLoad: syncprov

dn: olcDatabase=config,cn=config изменение типа: изменить olcRootDN: cn=admin,cn=config
olcRootPW: abc123 добавить: olcSyncRepl
olcSyncRepl: rid=001 provider=ldap://foo bindmethod=simple
  binddn="cn=admin,cn=config" учетные данные =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" учетные данные =abc123 searchbase="cn=config" 
  type=refreshAndPersist retry="5 5 300 5" timeout=3
- добавить: olcMirrorMode
olcMirrorMode: TRUE

dn: olcOverlay=syncprov, olcDatabase=config, cn=config
changetype: добавить objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov 

Это получило синхронизацию конфигурации, работающую в обоих направлениях.

Синхронизация данных

dn: olcDatabase = bdb,cn= config
изменить тип: изменить
добавить: olcMirrorMode
olcMirrorMode: TRUE
-
добавить: olcSyncrepl
olcSyncrepl: rid=001 provider=ldap://foo.example.com searchbase=dc= пример,dc=com binddn="uid=ldapsync,ou= специальные учетные записи, dc = пример,dc=com" учетные данные =xyz123
olcSyncrepl: rid=002 provider=ldap://bar.example.com searchbase=dc= пример,dc=com binddn="uid=ldapsync,ou= специальные учетные записи, dc = пример,dc=com" учетные данные = xyz123

dn: olcOverlay = syncprov, olcDatabase = bdb,cn= config
изменить тип: добавить
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov

Я проверил, что эти изменения были синхронизированы со вторым сервером, и что пользователь ldapsync может аутентифицироваться и видеть все необходимые ему данные. Однако данные bdb не синхронизируются ни в одном направлении. Что мне не хватает?

1 ответ

Решение

Эта тема привела меня к мысли, что olcMirrorMode определение должно быть размещено после olcSyncrepl линий. Я остановил серверы ldap и отредактировал файлы olcDatabase ldif вручную. Похоже, что теперь репликация данных работает в обоих направлениях.

Другие вопросы по тегам