Настроил репликацию между двумя серверами. Изменения на master реплицируются на slave. Но возникла проблема.....
Сервера выполняют одни и те же функции, у них одинаковые OS (freebsd 5.3) и используются одинаковые скрипты.
В некоторые моменты скрипты на серверах должны менять записи в своем LDAPе.
Работает система так: меняется что-то на Master, это сразу реплицируется на slave.
Но при этом slave server не может ничего изменить в своем ldap!
Без репликации тот же скрипт (вызывает ldapmodify)прекрасно работает. Стоит только закоментировать у slave строчки:
updatedn "cn=replicator,o=org,c=ru"
updateref ldap://localhost:636
Естественно, при этом не работает репликация!
Если же работает репликация, получаю ошибку
ldap_modify: Referral
ldif_record() = 10
и записи на slave посредством скрипта не меняются!
Как сделать, чтобы это работало одновременно?
Те нужно, чтобы:
Изменения на master реплицируются на slave
Причем сам slave мог самостоятельно менять записи в ldap (не нужно, чтобы это отображалось на master)
конфиги
MASTER
include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/samba.schema
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
loglevel 64
database ldbm
cachesize 10000
dbcachesize 1000000
threads 128
dbnosync
dbsync 2 12 5
sizelimit 10000
suffix "o=org,c=ru"
rootdn "cn=Manager,o=org,c=ru"
rootpw secret
directory /var/db/openldap-ldbm
replogfile /var/log/slurpd.replog
replica host=localhost:636
binddn="cn=replicator,o=org,c=ru"
bindmethod=simple
credentials=my_replicator
index objectClass eq
index uid pres,eq
index rid eq
index uidNumber eq
index gidNumber eq
index cn eq,subinitial
index memberUid eq
index gecos eq
index description eq
index default sub
access to attr=userPassword,lmPassword,ntPassword
by self write
by * auth
access to *
by * read
----------------
SLAVE:
----------------
include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/samba.schema
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
loglevel 64
database ldbm
cachesize 10000
dbcachesize 1000000
threads 128
dbnosync
dbsync 2 12 5
sizelimit 10000
suffix "o=org,c=ru"
rootdn "cn=Manager,o=org,c=ru"
rootpw secret
directory /var/db/openldap-ldbm
index objectClass eq
index uid pres,eq
index rid eq
index uidNumber eq
index gidNumber eq
index cn eq,subinitial
index memberUid eq
index gecos eq
index description eq
index default sub
updatedn "cn=replicator,o=org,c=ru"
updateref ldap://localhost:636
access to * attr=userPassword,lmPassword,ntPassword
by dn="cn=replicator,o=org,c=ru" write
by self write
by * auth
access to *
by dn="cn=replicator,o=org,c=ru" write
by * read