Как я клонирую базу данных OpenLDAP

Насколько я вижу, у вас есть следующие опции:

  1. Запустите pip с аргументом --no-dependencies и надеюсь, что он просто сработает. pip install wechatpy --no-dependencies (или как называется пакет, я не знаком с ним), например. Это игнорирует зависимости при установке. Возможно, требования устарели, и это позволит вам продолжить. Для этого вам, скорее всего, нужно выполнить требование requests>=2.9.1, поэтому вы должны установить python-social-auth обычным образом, а затем попробовать другой пакет без зависимостей.
  2. Найдите более старые версии устанавливаемых пакетов, которые соответствуют требованиям. В зависимости от настроек вашего проекта это может оказаться невозможным, поскольку вам нужны функции более поздних версий (или старые версии могут быть небезопасными).
  3. Вы можете попробовать исправить одно из ваших требований локально (загрузить из исходного кода, изменить код, чтобы он работал с конфликтующей версией requests). А затем импортируйте локальную версию пакетов. Не забудьте убрать требование из requirements.txt вашего проекта в этом случае, чтобы другие люди, работающие над / использующие ваш проект, не сталкивались с той же проблемой, и включите локальную версию как часть проекта (отслеживайте ее в Git). Проверьте лицензию пакетов, которые вы модифицируете, чтобы увидеть, разрешено ли вам изменять и распространять их. (Необязательно: Сделайте запрос на извлечение пакетов на Github с вашими изменениями, чтобы другие люди могли воспользоваться ими)
  4. Замените один или оба пакета чем-то другим. Они могут просто не быть совместимыми или использовать локальную, измененную версию, может быть нежизнеспособной.
37
задан raven 3 December 2009 в 18:05
поделиться

4 ответа

Проблема с ответом SourceRebels в том, что slapcat(8) не гарантирует, что данные упорядочены для ldapadd(1)/ldapmodify(1). Из man-страницы :

The  LDIF  generated  by this tool is suitable for use with slapadd(8).
As the entries are in database order, not superior  first  order,  they
cannot be loaded with ldapadd(1) without first being reordered.

Плюс использование инструмента, который использует файлы backend для дампа базы данных, а затем использует инструмент, который загружает ldif через протокол ldap, не очень последовательно.

Я бы предложил использовать комбинацию из slapcat(8)/slapadd(8) ИЛИ ldapsearch(1)/ldapmodify(1). Я бы предпочел последний вариант, так как он не требует доступа к серверу ldap через shell или перемещения файлов.

Например, сбросить базу данных с основного сервера под dc=master,dc=com и загрузить ее на резервный сервер

$ ldapsearch -Wx -D "cn=admin_master,dc=master,dc=com" -b "dc=master,dc=com" -H ldap://my.master.host -LLL > ldap_dump-20100525-1.ldif
$ ldapadd -Wx -D "cn=admin_backup,dc=backup,dc=com" -H ldap://my.backup.host -f ldap_dump-20100525-1.ldif

Флаг -W выше запрашивает пароль ldap admin_master, но поскольку мы перенаправляем вывод в файл, вы не увидите запроса - только пустую строку. Наберите свой пароль ldap admin_master и все заработает. Перед запуском ldapadd первую строку выходного файла нужно будет удалить (Enter LDAP Password:).

Последняя подсказка, ldapadd(1) является жесткой ссылкой на ldapmodify(1) с включенным флагом -a (add).

43
ответ дан 27 November 2019 в 04:32
поделиться

Некоторые встречи:

  • Сохраните ваши персонализированные определения схем и классов объектов на вашем новом сервере. Вы можете найти ваши включенные файлы в slapd.conf, чтобы получить его, например (это часть моего slapd.conf):

    include /etc/ldap/schema/core.schema

  • Include ваши персонализированные схемы и объектные классы в вашей новой установке openLDAP.

  • Используйте команду slapcat для экспорта полного дерева LDAP в один / различные файлы ldif .

  • Используйте ldapadd для импорта файлов ldif в вашу новую установку LDAP.

8
ответ дан 27 November 2019 в 04:32
поделиться

Я предпочитаю копировать базу данных по протоколу:

прежде всего убедитесь, что у вас одинаковые схемы на обоих серверах.

-дамп базы данных с помощью ldapsearch:
ldapsearch -LLL -Wx -D "cn = admin, dc = domain" -b "dc = domain"> domain.ldif

- и импортировать его на новый сервер:
ldapmodify -Wx -D "cn = admin, dc = domain" -a -f domain.ldif

в oneline:
ldapsearch -LLL -Wx -D "cn = admin, dc = domain" -b "dc = domain" | ldapmodify -w pass -x -D "cn = admin, dc = domain" -a

Используя команды bin / ldap *, вы общаетесь напрямую с сервером, а команды bin / slap * вы имеете дело с серверной частью файлы

6
ответ дан 27 November 2019 в 04:32
поделиться

ldapsearch и ldapadd не обязательно являются лучшими инструментами для клонирования вашей базы данных LDAP. slapcat и slapadd - гораздо лучшие варианты.

Экспортируйте вашу БД с помощью slapcat:

slapcat > ldif

Импортируйте БД с помощью slapadd (убедитесь, что сервер LDAP остановлен):

slapadd -l ldif
16
ответ дан 27 November 2019 в 04:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: