Простой вариант настройки репликации в 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.ldifdn: 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"
Комментариев нет:
Отправить комментарий