OpenLDAP replikáció

Az Open LDAP adatbázisának másik gépre történő replikálásának több módja van. A legegyszerűbb megoldás az, ha alá / fölé rendeltség van az ldap szerverek között. Ebben az esetben az egyik szerveren csak tárolódik az adat, míg a másikon történnek változások. Ez a felállás a Master - Slave replikáció.
A következőkben röviden a Multi Master összeállítású replikációt mutatom be. Ennek lényege, hogy az ldap fa bizonyos ágán történhet módosítás több szerveren is, ugyanakkor a változások mindkét szerveren megjelennek.
A lenti konfigurációs fájl részletek a /etc/ldap/slapd.conf fájlból való. Az itt bemutatott összeállítás a következő képen néz ki:

192.168.0.1: ez a szerver kommunikál a telephelyekkel, a telephelyek evvel szinkronizálják az adatbázisukat.
192.168.1.1: az egyik telephelyen lévő szerver, ami a helyi gépekkel kommunikál és az ldap adatbázisát a fentivel szinkronizálja.
192.168.2.1: a másik telephelyen elhelyezett szerver, teljesen hasonló a fentihez.

Részlet a 192.168.0.1 konfigurációjából:
limits dn.exact="cn=replicator,dc=company,dc=hu" size=unlimited time=unlimited
serverID 001
#--- telephely1
syncrepl rid=000
  provider=ldap://192.168.1.1
  type=refreshAndPersist
  interval=00:00:05:00
  retry="5 5 300 +"
  searchbase="ou=telephely1,dc=company,dc=hu"
  attrs="*,+"
  bindmethod=simple
  binddn="cn=replicator,dc=company,dc=hu"
  credentials=replica
#--- telephely2
syncrepl rid=001
  provider=ldap://192.168.2.1
  type=refreshAndPersist
  interval=00:00:05:00
  retry="5 5 300 +"
  searchbase="ou=telephely2,dc=company,dc=hu"
  attrs="*,+"
  bindmethod=simple
  binddn="cn=replicator,dc=company,dc=hu"
  credentials=replica

mirrormode TRUE
overlay syncprov
syncprov-checkpoint 100 10


Részlet a 192.168.1.1 konfigurációjából:

limits dn.exact="cn=replicator,dc=company,dc=hu" size=unlimited time=unlimited
ServerID 002
syncrepl rid=000
  provider=ldap://192.168.0.1
  type=refreshAndPersist
  retry="5 5 300 +"
  searchbase="ou=telephely1,dc=company,dc=hu"
  attrs="*,+"
  bindmethod=simple
  binddn="cn=replicator,dc=company,dc=hu"
  credentials=replica

mirrormode TRUE
overlay syncprov
syncprov-checkpoint 100 10

Részlet a 192.168.2.1 konfigurációjából:

limits dn.exact="cn=replicator,dc=company,dc=hu" size=unlimited time=unlimited
ServerID 003
syncrepl rid=000
  provider=ldap://192.168.0.1
  type=refreshAndPersist
  retry="5 5 300 +"
  searchbase="ou=telephely2,dc=company,dc=hu"
  attrs="*,+"
  bindmethod=simple
  binddn="cn=replicator,dc=company,dc=hu"
  credentials=replica

mirrormode TRUE
overlay syncprov
syncprov-checkpoint 100 10

A konfigurációs fájl sorairól röviden:
limits dn.exact="cn=replicator,dc=company,dc=hu" size=unlimited time=unlimited
    Ezzel a sorral jogot adunk a replicator felhasználónak, hogy bármikor (time), bármennyi (size) adatot mozgasson az adott adatbázisban.
ServerID 001
    Ez a szerver azonosítója, minden ldap szervert különböző azonosítóval kell ellátni
syncrepl rid=000
    Ha egy szerverről többelé replikálunk, akkor ehhez a változóhoz különböző értéket kell megadni.
provider=ldap:
    Annak a szervernek az ip címe vagy domain neve, amivel szinkronizálni szeretnénk
type=refreshAndPersist
    A szinkronizáció típusát adja meg. A refreshAndPersist azt jelenti, hogy az a szerver, amelyik kapcsolatot teremt a másikkal leküld minden változást, majd az, amivel kapcsolatot teremtett az előző visszaküldi azokat az adatokat, amik csak az ő oldalán változtak.
retry="5 5 300 +"
   A szinkronizálás gyakoriságág határozza meg.
searchbase=
    Ennek az opciónak a változtatásával oldható meg ,hogy egy telephelyen csak a számára értékes információk tárolódjanak, más telephelyek adatai ne jelenjenek meg. A szinkronizálni kívánt fa legalsó ágát (kiinduló pontját) kell megadni.
attrs=
    Azt adja meg, hogy melyik jellemzőket akarjuk szinkronizálni. Pl. megadható, hogy csak a jelszavakat küldje át a másik szervernek. Az attrs="*,+" hatására mindent átküld.
bindmethod=simple
binddn="cn=replicator,dc=company,dc=hu"
credentials=replica
    A fentiek összetartoznak, ezért együtt kezelem. A bindmethod azt adja meg, hogy milyen módon azonosítjuk magunkat a távoli kiszolgálón. A binddn a "felhasználónevet", a credentials a jelszót tartalmazza.

Bővebb információ a témáról elérhető itt.


Új hozzászólás: