URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91007
[ Назад ]

Исходное сообщение
"Перенос базы LDAP на другой сервер."

Отправлено Sandman_VO , 24-Фев-11 10:58 
Нужна помощь в переносе базы ldap.
Стоит сервер SLES10sp3, на нем ldap сервер. Хочу этот сервер вывести из работы, но как перекинуть ldap на другой сервер (тоже SLES10sp3) не знаю.
Читал про репликацию (и документация от новела и просто в инете), но как применить ее к SLES так и не понял.
Кроме того как после репликации slave поднять до уровня основного
Буду очень благодарен за любую помощь.

Содержание

Сообщения в этом обсуждении
"Перенос базы LDAP на другой сервер."
Отправлено Аноним , 24-Фев-11 11:26 
> Нужна помощь в переносе базы ldap.
> Стоит сервер SLES10sp3, на нем ldap сервер. Хочу этот сервер вывести из
> работы, но как перекинуть ldap на другой сервер (тоже SLES10sp3) не
> знаю.
> Читал про репликацию (и документация от новела и просто в инете), но
> как применить ее к SLES так и не понял.
> Кроме того как после репликации slave поднять до уровня основного
> Буду очень благодарен за любую помощь.

вам нужно slapcat/slapadd.


"Перенос базы LDAP на другой сервер."
Отправлено Sandman_VO , 24-Фев-11 12:34 
> вам нужно slapcat/slapadd.

Это точно сработает в SLES. Потому как в нем все не как у людей. И ldap сервер поднимался средствами Yast.


"Перенос базы LDAP на другой сервер."
Отправлено Аноним , 24-Фев-11 12:57 
>> вам нужно slapcat/slapadd.
> Это точно сработает в SLES. Потому как в нем все не как
> у людей. И ldap сервер поднимался средствами Yast.

Откровенно говоря, ничего не знаю про suse. Но если это OpenLDAP, то конечно сработает. Если у них там какой-то свой directory server типа как у RedHat, то он наверняка все равно использует OpenLDAP как бэкенд. В общем или предоставьте больше информации или попробуй сделать дамп slapcat'ом и развернуть его slapadd'ом.


"Перенос базы LDAP на другой сервер."
Отправлено Аноним , 24-Фев-11 13:01 
>> вам нужно slapcat/slapadd.
> Это точно сработает в SLES. Потому как в нем все не как
> у людей. И ldap сервер поднимался средствами Yast.

Почитал вот тут:
http://www.linuxtopia.org/online_books/suse_linux_guides/SLE...

Я так понял что там используется OpenLDAP, а yast просто позволяет настроить ldap и pam из gui. Так что вариант с slapcat/slapadd вам определенно подойдет.


"Перенос базы LDAP на другой сервер."
Отправлено Sandman_VO , 24-Фев-11 14:13 
> Я так понял что там используется OpenLDAP, а yast просто позволяет настроить
> ldap и pam из gui. Так что вариант с slapcat/slapadd вам
> определенно подойдет.

То что используется OpenLDAP это я знаю. Команда slapcat выполняется нормально, без ошибок. А вот slapadd пока дает ошибки. Чуть позже опишу подробно.


"Перенос базы LDAP на другой сервер."
Отправлено Sandman_VO , 24-Фев-11 15:12 
Все я ушел в ступор.
1. поставил suse на новую машину (копия старого сервера, с тем же именем), во время инсталляции АВТОМАТИЧЕСКИ СОЗДАЕТСЯ нужная база ldap (DC=TEST,DC=RU). Все прекрасно работает.
2. С рабочего сервера делаю выгрузку ldap базы в файл. Все нормально, без ошибок.
3. Пытаюсь импортировать базу. И вот тут начинаются ошибки.

=> bdb_tool_entry_put: id2entry_add failed: DB_KEYEXIST: Key/data pair already exists (-30996)
=> bdb_tool_entry_put: txn_aborted! DB_KEYEXIST: Key/data pair already exists (- 30996)
slapadd: could not add entry dn="dc=test,dc=ru" (line=13): txn_aborted! DB_KE YEXIST: Key/data pair already exists (-30996)

После этого на новом сервере зайти в базу ldap невозможно ошибка авторизации.
Куда смотреть, чего показать.

И все таки может кто знает как сделать репликацию в suse


"Перенос базы LDAP на другой сервер."
Отправлено Vladimir , 24-Фев-11 15:17 
> Посмотреть заливаемый ldif файл и удалить уже существующие записи.

"Перенос базы LDAP на другой сервер."
Отправлено Sandman_VO , 24-Фев-11 15:21 
>> Посмотреть заливаемый ldif файл и удалить уже существующие записи.

И так делал. Он начинает ругаться на позиции типа SambaSID, на новом сервере не была поднята samba.
str2entry: str2ad (sambaSID) attribute type undefined


"Перенос базы LDAP на другой сервер."
Отправлено Аноним , 24-Фев-11 15:50 
>>> Посмотреть заливаемый ldif файл и удалить уже существующие записи.
> И так делал. Он начинает ругаться на позиции типа SambaSID, на новом
> сервере не была поднята samba.
> str2entry: str2ad (sambaSID) attribute type undefined

Нужно чтобы slapd.conf совпадал с тем, что на старом сервере. И схемы все должны быть со старого сервера. В данном случае samba.scheme. Скопируйте конфиг, схемы, удалите текущую базу и залейте заново из ldif.


"Перенос базы LDAP на другой сервер."
Отправлено Sandman_VO , 25-Фев-11 11:09 
Всем огромное спасибо.
После многочисленных попыток получилось нормально импортировать базу командой slapadd. Базу на новом сервере удалять не стал. Пришлось удалить из файла ldif все совпадающие позиции и изменить SambaSID от нового сервера. Схемы копировать также не стал , просто поднял все сервисы какие были на основном сервере.

А как все таки реализовать репликацию ldap? На будущее, чтобы не плясать больше с бубнами.

Из того что я нашел в литературе новела

slapd.conf на мастер сервере:

replica uri=slave_ldap.test.ru
binddn="cn=replicator,dc=test,dc=ru"
bindmethod=simle
credentials=password


slapd.conf на вторичном сервере

updatedn="cn=replicator,dc=test,dc=ru"
updateref="ldap://master.test.ru"
access to *
  by dn="cn=replicator,cn=test,ch=ru" write
  by * read

Достаточно ли будет этих строк?
Для чего нужны slurpd или syncrepl?


"Перенос базы LDAP на другой сервер."
Отправлено Аноним , 25-Фев-11 12:14 
>[оверквотинг удален]
> bindmethod=simle
> credentials=password
> slapd.conf на вторичном сервере
> updatedn="cn=replicator,dc=test,dc=ru"
> updateref="ldap://master.test.ru"
> access to *
>   by dn="cn=replicator,cn=test,ch=ru" write
>   by * read
> Достаточно ли будет этих строк?
> Для чего нужны slurpd или syncrepl?

slurpd - это отдельный демон для репликации. Сейчас он объявлен устаревшим и не должен использоваться. syncrepl - современная замена slurpd, работающая на базе самого slapd, а не отдельного демона. Мастер-сервер должен иметь оверлей syncprov, не знаю как в suse, может он там как-то модулем отдельно подключается. Плюс нужно завести отдельного юзера для репликации с минимальным набором прав. Конфигурация слэйв-серверов примерно такая (только что касается репликации)

syncrepl rid=7
       provider=ldap://server
       type=refreshOnly
       interval=00:00:05:00
       retry="30 10 600 20"
       searchbase="dc=domain,dc=tld"
       binddn="cn=repl,dc=domain,dc=tld"
       credentials=replpossword
       updateref ldap://server

Более подробно смотрите в официальной документации к openldap.