2014-10-24 4 views
3

Я ищу некоторую помощь с решением ApacheDS Multi Master. Я новичок в настройке LDAP-решений, и поэтому вполне возможно, что я делаю некоторые довольно простые ошибки.ApacheDS Multi Master config

У меня есть две виртуальные машины CentOS - LDAP1 и LDAP2. Каждая VM имеет запущенное ApacheDS решение. LDAP1 работает ApacheDS на порту 10389, а LDAP2 работает с ApacheDS на порту 10399.

Я могу подключиться к обоим серверам с помощью Apache Directory Studio без проблем и увидеть перечисленные структуры по умолчанию.

я затем импортировать структуру SevenSeas в ldap1 и позволили DEBUG для обоих ldap1 и LDAP2 для репликации по раскомментируете линии в /instances/default/conf/log4j.properties

log4j.logger.org. apache.directory.server.PROVIDER_LOG = DEBUG log4j.logger.org.apache.directory.server.CONSUMER_LOG = DEBUG

Я тогда попытка создать конфиг MultiMaster после этого руководства: http://joacim.breiler.com/apacheds/ch08s02.html

1) включить обработчик репликации Ldap1 путем импорта следующий LDIF

dn: ads-serverId=ldapServer,ou=servers,ads-directoryServiceId=default,ou=config 
changetype: modify 
add: ads-replReqHandler 
ads-replReqHandler: org.apache.directory.server.ldap.replication.provider.SyncReplRequestHandler 

2) Я затем включить обработчик репликации на LDAP2 путем импорта же, как указано выше LDIF

3), а затем перезапустить как ldap1 и серверы LDAP2 ApacheDS.

4) После перезагрузки сервера я проверить apacheDS.log и увидеть следующие данные (на обоих ldap1 и LDAP2)

[08:41:28] DEBUG [org.apache.directory.server.PROVIDER_LOG] - initializing the syncrepl provider 
[08:41:28] DEBUG [org.apache.directory.server.PROVIDER_LOG] - Starting the replication consumer manager 
[08:41:28] DEBUG [org.apache.directory.server.PROVIDER_LOG] - no replica logs found to initialize 
[08:41:28] DEBUG [org.apache.directory.server.PROVIDER_LOG] - syncrepl provider initialized successfully 

5) затем импортировать следующий LDIF на LDAP2 (Ошибок не генерируются)

dn: ads-replConsumerId=1,ou=replConsumers,ads-serverId=ldapServer,ou=servers,ads-directoryServiceId=default,ou=config 
objectClass: ads-base 
objectClass: ads-replConsumer 
objectClass: top 
ads-replAliasDerefMode: never 
ads-replAttributes: * 
ads-replConsumerId: 1 
ads-replProvHostName: ldap1 
ads-replProvPort: 10389 
ads-replRefreshInterval: 60000 
ads-replRefreshNPersist: true 
ads-replSearchFilter: (objectClass=*) 
ads-replSearchScope: sub 
ads-replSearchSizeLimit: 0 
ads-replSearchTimeOut: 0 
ads-replUserDn: uid=admin,ou=system 
ads-replUserPassword:: c2VjcmV0 
ads-searchBaseDN: o=SevenSeas 

6) затем я импортировать следующий LDIF на ldap1

dn: ads-replConsumerId=2,ou=replConsumers,ads-serverId=ldapServer,ou=servers,ads-directoryServiceId=default,ou=config 
objectClass: ads-base 
objectClass: ads-replConsumer 
objectClass: top 
ads-replAliasDerefMode: never 
ads-replAttributes: * 
ads-replConsumerId: 2 
ads-replProvHostName: ldap2 
ads-replProvPort: 10399 
ads-replRefreshInterval: 60000 
ads-replRefreshNPersist: true 
ads-replSearchFilter: (objectClass=*) 
ads-replSearchScope: sub 
ads-replSearchSizeLimit: 0 
ads-replSearchTimeOut: 0 
ads-replUserDn: uid=admin,ou=system 
ads-replUserPassword:: c2VjcmV0 
ads-searchBaseDN: o=SevenSeas 

7) Я й ru попытайтесь перезапустить серверы apacheDS LDAP1 и LDAP2 и нажмите следующую ошибку на обоих серверах. (Об этом сообщается в ApacheDS.log

08:52:42] ERROR [org.apache.directory.server.config.ConfigPartitionReader] - An error occured while reading the configuration DN 'ou=replConsumers,ads-serverId=ldapServer,ou=servers,ads-directoryServiceId=default,ou=config' for the objectClass 'ads-replConsumer': 
ERR_04274 Can't find an OID for the name ads-base 
[08:52:42] ERROR [org.apache.directory.server.UberjarMain] - Failed to start the service. 
org.apache.directory.server.config.ConfigurationException: An error occured while reading the configuration DN 'ou=replConsumers,ads-serverId=ldapServer,ou=servers,ads-directoryServiceId=default,ou=config' for the objectClass 'ads-replConsumer': 
ERR_04274 Can't find an OID for the name ads-base 
     at org.apache.directory.server.config.ConfigPartitionReader.read(ConfigPartitionReader.java:641) 
     at org.apache.directory.server.config.ConfigPartitionReader.read(ConfigPartitionReader.java:600) 
     at org.apache.directory.server.config.ConfigPartitionReader.read(ConfigPartitionReader.java:600) 
     at org.apache.directory.server.config.ConfigPartitionReader.readConfig(ConfigPartitionReader.java:754) 
     at org.apache.directory.server.config.ConfigPartitionReader.readConfig(ConfigPartitionReader.java:718) 
     at org.apache.directory.server.config.ConfigPartitionReader.readConfig(ConfigPartitionReader.java:690) 
     at org.apache.directory.server.ApacheDsService.start(ApacheDsService.java:177) 
     at org.apache.directory.server.UberjarMain.start(UberjarMain.java:76) 
     at org.apache.directory.server.UberjarMain.main(UberjarMain.java:54) 

8) Затем я вернулся в конфигурации, чтобы до того, как импорт, чтобы позволить мне перезапустить серверы

9) Если удалить следующую строку из LDIF, используемой в пункте 5/6, я тогда могу запустить серверы.

objectClass: ads-base 

10) отладки (как на ldap1 и LDAP2) отражает, что репликация работает

[09:02:31] DEBUG [org.apache.directory.server.PROVIDER_LOG] - initializing the syncrepl provider 
[09:02:31] DEBUG [org.apache.directory.server.PROVIDER_LOG] - Starting the replication consumer manager 
[09:02:31] DEBUG [org.apache.directory.server.PROVIDER_LOG] - no replica logs found to initialize 
[09:02:31] DEBUG [org.apache.directory.server.PROVIDER_LOG] - syncrepl provider initialized successfully 

11) Я тогда войти в LDAP2 и не видит раздел O = SevenSeas - Какой мне говорят, что репликация не сработала? Я пропустил сцену?

UPDATE Я был в состоянии сделать больше определенного прогресса по этому вопросу. При использовании инструмента Apache Directory Studio - я наткнулся на вкладки конфигурации сервера (щелкните правой кнопкой мыши по соединению LDAP). Среди вкладок - вкладка «Репликация». Это позволяет добавлять пользователей. В LDAP1 я добавил, что потребитель указывает на LDAP2 и на LDAP2. Я добавил, чтобы потребитель указывал на LDAP1, где BASEDN была ou = system. Похоже, что идентификатор потребителя должен соответствовать идентификаторам, указанным в пункте 5/6.

Затем я перезапустил оба сервера LDAP.

Когда серверы перезапустились, я мог видеть, что они разговаривают друг с другом (через отладочную версию). Я сделал редактирование раздела ou_system на LDAP1, и это было реплицировано на LDAP2. Я чем сделал редактирование в системном разделе ou = на LDAP2, и это было реплицировано в LDAP1.

Моя проблема в том, что я не могу реплицировать другие разделы - независимо от того, что BASE DN находится в конфигурации пользователя.

ответ

1

Я думаю, что мы начали работать над тем же вопросом одновременно. Репликация на пользовательский раздел, похоже, работает, если вы установите для кеша 1000 для раздела.

+0

Hmmm nope попробовал это, и он все еще не реплицирует ничего, кроме ou = system. – dazednconfused

+0

На самом деле подожди ... Он сейчас работает. – dazednconfused

+0

Является ли это проблемой конфигурации кеша в apache? Эта проблема исправлена ​​в последней версии, или какой-либо билет должен отслеживать эту проблему? – Sohan