Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
n настройка файлов slapd.conf главного и вторичных серверов;
n первоначальный перенос основной базы с основного сервера на вторичные;
n запуск демона slurpd, который и осуществляет синхронизацию серверов.
После осуществления всего этого можно разбивать пользователей на группы и указывать для их клиентов определённый LDAP-сервер и создать основной сервер, который будет все вторичные синхронизировать (звездообразная схема). При этом любые изменения в базе любого из LDAP-серверов будут раскопированы на все сервера, включая основной. Вот примерная схема действия реплики при получении запроса от клиента.
n Вторичный LDAP-сервер получает запрос на изменение и говорит клиенту, что надо изменить данные на основном сервере (то есть перенаправляет клиента к главному).
n Клиент посылает запрос главному серверу, который он обрабатывает. При этом сервер знает, что клиент был к нему перенаправлен (это записывается в лог реплики).
n slurpd замечает (после прошествия некоторого времени), что данные были обновлены, и осуществляет синхронизацию.
n Вторичные сервера получают запрос от slurpd главного сервера и, обновив данные у себя, посылают ответ slurpd, этот ответ также может быть записан в лог реплики.
Ну всё, хватит теории, начинаем настройку. Для начала поправим slapd.conf:
# Это основной сервер! Добавим несколько реплик. Каждая директива соответствует одному
# вторичному ldap-серверу. Указываем адрес вторичного сервера(host), dn для репликатора,
# метод аутентификации и пароль репликации (пароль для данного dn). В качестве репликатора
# можно использовать рута. Честно говоря, для реплик я бы создал туннель через ssh или stunnel
# и присоединялся бы не к удалённому хосту к порту 389, а к локальному на назначенный порт
# (для разных рабов можно сделать несколько туннелей)
replica host=slave1.test.ru:389 binddn="cn=replicator, dc=test, dc=ru"
bindmethod=simple credentials=replicator_password
# Следующий раб
replica host=slave2.test.ru:389 binddn="cn=replicator, dc=test, dc=ru"
bindmethod=simple credentials=replicator_password
# Записываем данные реплик в log-файл, это делать необязательно (даже нежелательно, т.к. понижает
# производительность). Эта опция едина для всех вторичных серверов
replogfile /var/log/ldap/replica.log
После чего на вторичных серверах вносим ещё пару строк в slapd.conf:
# Это вторичный сервер! Нельзя использовать директивы replica replogfile. Необходимо создать некий
# updatedn, совпадающий с binddn основного сервера, по которому главный будет модифицировать данные.
updatedn="cn=replicator,dc=test,dc=ru"