wiki:freebsd:ldap

Репликация OpenLDAP методом syncprov

В конец /etc/openldap/slapd.conf допишем:

overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100

Первая строка включает возможность использования оверлейной программы syncprov. Оверлей должен настраиваться в отношении определенной базы данных, поэтому код в указанном листинге должен располагаться после настройки параметра database.

Следующие две строки являются необязательными, однако повышают надежность. Строка syncprov-checkpoint 100 10 указывает серверу сохранять значения параметра contextCSN на жесткий диск каждые 100 операций записи или каждые 10 минут. Параметр contextCSN является частью упомянутого ранее маркера, помогающего серверу-получателю получать изменения, произошедшие с момента завершения предыдущей репликации. Строка syncprov-sessionlog 100 регистрирует все операции записи в журнале, хранящемся на жестком диске, что также помогает поддерживать цикл синхронизации.

Репликацию можно использовать в двух режимах:

  • refreshOnly – периодическая репликация, с заданным интервалом;
  • refreshAndPersist – постоянные режим, изменения на master почти мгновенно становятся доступны на slave серверах.
syncrepl rid=123
        provider=ldap://192.168.0.1
                type=refreshOnly
                interval=00:01:00:00
                searchbase="dc=domain,dc=ru"
                filter="(objectClass=*)"
                scope=sub
                attrs="*"
                schemachecking=off
                bindmethod=simple
                binddn="cn=ldapadmin,dc=domain,dc=ru"
                credentials=*********

Для команды syncrepl требуется указать ссылку updaterefи предоставить информацию о дереве каталога, которое вы пытаетесь реплицировать. Также необходимо предоставить учетные данные, которые будут использоваться для репликации. На этот раз учетные данные указываются на стороне получателя, а уровень доступа к источнику, предоставляемый для этих учетных данных, должен обеспечивать возможность чтения реплицируемой части дерева каталога. Все изменения базы данных на сервере-получателе выполняются от имени rootdn.

Параметры rid, provider, type и interval относятся к syncrepl. Параметр rid идентифицирует получателя на главном сервере. Получатель должен иметь уникальный идентификатор (ID), который может принимать значение от 1 до 999. Параметр provider является ссылкой LDAP в формате URI, указывающей на сервер-источник. Параметр type указывает, что синхронизация будет выполняться только в режиме refreshOnly, а параметр interval определяет периодичность синхронизации, равную одному часу. Значение параметра interval задается в формате DD:hh:mm:ss.

Запустите сервер-получатель с пустой базой данных, и его данные будут реплицироваться с сервером-источником каждый час.

Перевести синхронизацию в режим refreshAndPersist очень просто. Для этого удалите interval и замените значение параметра type на refreshAndPersist и добавьте retry=”60 10 300 +”

Опция retry задает количество и время повторов при разрыве связи с мастер-серверов. Например запись “60 10 300 +” означает выполнять попытку реконнекта каждый 60 секунд для 10 попыток, после 10 неудачных попыток новые реконнекты будут производиться каждый 300 секунд (5 минут). Фильтрация syncrepl

Следует заметить, что вам не обязательно может потребоваться реплицировать дерево LDAP целиком. Для того чтобы выбрать только необходимые для репликации данные, вы можете использовать следующие команды:

  • searchbase – различающееся имя, указывающее на узел дерева, с которого начнется репликация. При необходимости OpenLDAP заполнит нужные родительские узлы, чтобы обеспечить целостность дерева.
  • scope -может принимать одно из значений: sub, one или base. Этот параметр определяет глубину репликации данных относительно начальной точки, указанной в параметре searchbase. Значением по умолчанию является sub; это значение охватывает узел searchbase и все его дочерние узлы.
  • filter – фильтр поиска LDAP, такой как (objectClass=inetOrgPerson), определяющий набор записей для репликации.
  • attrs -список атрибутов, которые будут извлечены из выбранных записей.

Также как и остальные опции syncrepl, все вышеперечисленные параметры записываются в формате параметр=значение.

  • wiki/freebsd/ldap.txt
  • Последние изменения: 2019/07/26 12:27
  • (внешнее изменение)