Страницы

Сохранить статью у себя в соцсети:

понедельник, 8 апреля 2013 г.

§ OpenLDAP: Simple replication.

Простой вариант настройки репликации в OpenLDAP.


OpenLDAP поддерживает разнообразные варианты топологий репликации. В связи с этим, в репликации существует два типа роли: поставщик (provider) и потребитель (consumer). Поставщик реплицирует обновления каталога потребителям, а потребители получают реплицируемые обновления от поставщиков. В отличие от жёстко определённых отношений master/slave, роли поставщика/потребителя довольно расплывчаты: реплицируемые обновления, полученные потребителем, могут быть далее распространены от этого потребителя на другие серверы, таким образом потребитель может также выступать одновременно и в качестве поставщика. Кроме того, потребителю не обязательно быть реальным сервером LDAP; это может быть и LDAP-клиент.

В статье описывается простейший пример настройки репликации между двумя серверами OpenLDAP через syncrepl.
Настройка поставщика. Настройка сводится к включению поддержки syncrepl-репликации и  настройке контрольных точек для сохранения служебного contextCSN в целевой базе данных, необходимых для минимизации времени восстановления после аварийного завершения:
# vi /etc/openldap.slapd.conf
# индексы, специфичные для syncprov
index entryCSN eq
index entryUUID eq
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100


Также создаем отдельную роль которая будет использоваться для репликации (под этой ролью будут подключаться потребители). DN должен примерно соответствовать иерархии каталога и может отличать от примера указанного ниже
# vi replicator-role.ldif
dn: cn=replicator,dc=thislinux,dc=org
cn: replicator
sn: replicator
objectClass: organizationalPerson


Импортируем данные в каталог и определяем пароль для нашей роли
# ldapadd -x -W -D "cn=Manager,dc=thislinux,dc=org" -f replicator-role.ldif 
Enter LDAP Password: 
adding new entry "cn=replicator,dc=thislinux,dc=org"
# ldappasswd -x -W -D "cn=Manager,dc=thislinux,dc=org" -s replicapass "cn=replicator,dc=thislinux,dc=org"


Перезапускаем slapd и переходим к потребителю.
# /etc/init.d/slapd restart

Настройка потребителя. Поскольку syncrepl - это механизм репликации на стороне потребителя, спецификация syncrepl определяется в файле slapd.conf сервера-потребителя, а не в конфигурационном файле сервера-поставщика. Стоит отметить, что для запуска репликации, не требуется остановки сервера-поставщика. Механизм syncrepl автоматически синхронизирует первоначальную реплику потребителя с текущим содержимым каталога поставщика.
# vi /etc/openldap.slapd.conf
# индексы, специфичные для syncprov
index entryCSN eq
index entryUUID eq
syncrepl 
       rid=001
                provider=ldaps://ldap.thislinux.org
                type=refreshAndPersist
                bindmethod=simple
                binddn="cn=replicator,dc=thislinux,dc=org"
                credentials=replicapass
                searchbase="dc=thislinux,dc=org"
                schemachecking=on
                retry="60 +"


Обратите внимание, что основные настройки TLS для slapd не используются механизмом syncrepl; по умолчанию будут использоваться параметры TLS из конфигурационного файла ldap.conf. Если же указать настройки TLS в syncrepl секции slapd.conf, то любые настройки из ldap.conf будут полностью проигнорированы.
проверка.
Перезапускаем slapd и выполняем проверку. Проверяем содержимое contextCSN на обоих узлах (значение должно совпадать).
# ldapsearch -LLL -x -h ldap2.thislinux.org -s base -b "dc=thislinux,dc=org" contextCSN
dn: dc=thislinux,dc=org
contextCSN: 20130407042833.786597Z#000000#001#000000

# ldapsearch -LLL -x -h ldap.thislinux.org -s base -b "dc=thislinux,dc=org" contextCSN
dn: dc=thislinux,dc=org
contextCSN: 20130407042833.786597Z#000000#001#000000


На этом можно считать задачу выполненной. Более подробное описание механизма репликации, описание параметров и варианты настройки можно найти здесь.

На главную "Virtualizing Linux"

Комментариев нет:

Отправить комментарий

Популярные сообщения

Профиль в Google+ Яндекс цитирования Яндекс.Метрика