Есть следующее ТЗ - с Нетшкафового ЛДАП сервера перенести часть дерева на ОпенЛДАП сервер.
Была мысль сделать это с помощью реплики - но не вышло.
Код: Выделить всё
[root@odin opt]# /usr/sbin/slapd -d 256 -d 128
@(#) $OpenLDAP: slapd 2.3.27 (Jul 2 2008 04:29:48) $
brewbuilder@ls20-bc1-14.build.redhat.com:/builddir/build/BUILD/openldap-2.3.27/openldap-2.3.27/build-servers/servers/slapd
bdb_db_open: Warning - No DB_CONFIG file found in directory /opt/ldap_db: (2)
Expect poor performance for suffix ou=Employee,ou=People,o=enterprise.com.
slapd starting
request done: ld 0x2b87d6a1da10 msgid 1
=> bdb_entry_get: cannot find entry: "ou=employee,ou=people,o=enterprise.com"
do_syncrep2: got search entry without control
Обычный ldapsearch (анонимный) проходит и возвращает записи.
Намучавшись с репликой, я просто решил подсовывать дамп базы данных, которую вернул ldapsearch.
Дамп живет в файле base.ldif, в таком формате
Код: Выделить всё
# Chuvak1, Employee, kv, People, enterprise.com
dn: uid=Chuvak1,ou=Employee,ou=kv,ou=People, o=enterprise.com
mail: chuvak1@enterprise.com
uid: Chuvak1
# Chuvak2, Employee, kv, People, enterprise.com
dn: uid=Chuvak2,ou=Employee,ou=kv,ou=People, o=enterprise.com
mail: chuvak2@enterprisel.com
uid: Chuvak2
При попытке добавить этот файл в свеженасетапанную базу ОпенЛДАП`а, мне возвращает следующее:
Код: Выделить всё
[root@odin ~]# /usr/sbin/slapadd -v -l base.ldif
bdb_db_open: Warning - No DB_CONFIG file found in directory /opt/ldap_db: (2)
Expect poor performance for suffix ou=Employee,ou=People,o=enterprise.com.
is_entry_objectclass("uid=Chuvak1,ou=people,o=enterprise.com", "2.16.840.1.113730.3.2.6") no objectClass attribute
slapadd: line 5: database (ou=Employee,ou=People,o=enterprise.com) not configured to hold "uid=chuvak1,ou=people,o=enterprise.com"
slapadd: line 5: database (ou=employee,ou=people,o=enterprise.com) not configured to hold "uid=chuvak1,ou=people,o=enterprise.com"
Конфиг slapd.conf
Код: Выделить всё
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
allow bind_v2
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
modulepath /usr/lib64/openldap/
moduleload back_sql.la
moduleload back_ldap.la
moduleload back_sql-2.3.so.0.2.15
database bdb
suffix "ou=Employee,ou=People, o=enterprise.com"
rootdn "uid=root_user,ou=Employee,ou=People, o=enterprise.com"
rootpw secret
rootpw {MD5}3SX9ncRGyYcxq+6XN51ooA==
directory /opt/ldap_db
loglevel -1
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub
syncrepl rid=0
provider=ldap://ldap.enterprise.com:389
type=refreshAndPersist
retry="60 +"
searchbase="o=enterprise.com"
filter="(objectClass=*)"
scope=sub
attrs="mail,uid"
schemachecking=off
bindmethod=simple
binddn="uid=tbl,ou=Groups, ou=kv, ou=People, o=enterprise.com"
credentials=12345678
Как мне заставить работать реплику? Или как импортировать дамп БД в базу ОпенЛДАП? И возможен ли инкрементальный синк (bash или php скрипт) в файл, и последующий импорт его в БД на ОпенЛдапе?
Ну очень надо
Спасибо