Как перенести LDAP (база данных, схема, конфигурация) на другой компьютер

16

Я использую openldap 2.4.40, и мне нужно перенести мою существующую базу данных, конфигурацию и схему ldap (в основном все, что связано с сервером ldap) на новую машину.

проблема в том, что я использую конфигурацию cn = config, а не старый файл slapd.conf.

Документация, предоставленная openldap и другими сторонними веб-сайтами, помогает только для миграции LDAP-сервера slapd.conf, но не LDAP-сервера с более новым файлом конфигурации cn = config.

а также у меня есть новая схема (attributetype и objectclass), есть ли способ перенести их на новую машину настолько легко, насколько это возможно?

Мне нужен другой способ, кроме перенастройки и ручного добавления схемы на новую машину.

Это будет сделано с целью выключения старой машины, скорее всего.

TL; DR. Существует ли какой-либо способ для удобной миграции базы данных, схемы, конфигурации LDAP с 1 сервера LDAP на новый сервер LDAP с целью выключения старой машины?

Спасибо.

* Разместил ответ ниже

- Хулио

J_LDAP
источник
2
Вы действительно должны опубликовать свое решение как ответ, а не как редактирование вашего вопроса.
Свен

Ответы:

17

Решение :

Итак, вот что я сделал, чтобы это сработало.

  1. Остановите Slapd на главном сервере
  2. Базы данных Slapcat с главного сервера (Есть 2 базы данных, которые необходимо экспортировать. Я использую тег "-n"

    slapcat -n 0 -l (config file location)
    

Этот будет экспортировать всю схему и cn = config и

    slapcat -n 1 -l <database backup ldif path>

Это позволит экспортировать все пользовательские данные, которые вы храните в LDAP.

  1. SCP файл 2 ldif на новый сервер (убедитесь, что вы установили LDAP на сервер и убедитесь, что конфигурация почти идентична, чтобы сделать это проще)
  2. остановите slapd на новом сервере.
  3. удалить содержимое папки

    /etc/ldap/slapd.d
    
  4. используйте slapadd для импорта конфигурации на новый сервер

    slapadd -n 0 -l (config ldif location)
    

    -n 0 для добавления конфигурации обратно в LDAP

    slapadd -n 1 -l (database ldif location)
    

    -n 1 для добавления базы данных обратно в LDAP

* РЕДАКТИРОВАТЬ: Каким-то образом эти команды не будут работать на моем втором третьем .... и так далее, попробуйте. Так что правильная команда, которую я проверял, что это работает,

  slapadd -n 0 -F /etc/ldap/slapd.d -l <config backup ldif path>

и

  slapadd -n 1 -l <data backup ldif path>
  1. измените разрешение в папке /etc/ldap/slapd.d (chown и chmod). Я выбрал его для openldap и chmod до 755

Также измените разрешение в папке / var / lib / ldap (chown и chmod) на openldap

если у вас есть сертификат для подключения TLS. Скопируйте сертификаты и ключи со старого сервера на новый сервер в том же месте. поменять разрешение на местах.

  1. начать slapd.

и это должно быть хорошо идти.

Надеется, что это помогает другим людям

J_LDAP
источник
У меня были проблемы с разрешениями для файлов базы данных в / var / lib / ldap, которые нужно было переключить на владельца ldap. Кроме этого, это было очень гладко.
Шелдонкрегер
рад, что это работает хорошо для вас
J_LDAP
это требует больше голосов. Я выискивал и тестировал в течение 2 недель для моей установки на работу. СПАСИБО
hanzo2001
Рад, что мой пост может помочь другим
J_LDAP
В моем случае только схема работала как положено, данные не были скопированы. На самом деле набор данных / var / lib / ldap в месте назначения не содержит никаких строк о пользователях ... похоже, ничего не произошло. Мне пришлось вручную скопировать базу данных в / var / lib / ldap с исходного на конечный компьютер; Я следовал за serverfault.com/questions/227813/openldap-replication-problem/…
Фабиано Тарлао
6

Экспортируйте оба дерева ( cn=configи ваши обычные данные) в LDIF, импортируйте их обратно на новый сервер ( cn=configсначала). Выполнено.

Кроме того, cn=configпо сути, это просто коллекция файлов LDIF, и может быть возможно просто скопировать эту коллекцию в то же относительное местоположение на новом сервере (пока slapdон не запущен).

Свен
источник
как именно их экспортировать? Как насчет Schema (новый объектный класс, attributetypes)? Спасибо за ответ
J_LDAP
Схемы должны быть определены в cn=schema,cn=config(или что-то в этом роде) и будут содержаться в файле LDIF.
Свен
Хорошо, спасибо за ответ. Я попробую позже. Огромное спасибо.
J_LDAP