Unterschiede zwischen den Revisionen 1 und 18 (über 17 Versionen hinweg)
Revision 1 vom 2014-05-18 16:32:33
Größe: 1865
Autor: anonym
Kommentar:
Revision 18 vom 2022-01-07 13:10:59
Größe: 4646
Autor: anonym
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 1: Zeile 1:
<<TableOfContents()>>

Zeile 4: Zeile 7:
Dabei existiert ein ''Master'' - dies ist der LDAP-Server auf dem Schreib-Operationen erlaubt. Alle anderen LDAP-Server beziehen lediglich im Pull-Verfahren regelmäßig Änderungen von dem Master.
Zeile 6: Zeile 11:
Üblicherweise müssen bei den Beispielen lediglich In den Beispielen werden die folgenden Variablen verwendet - sie sind durch lokale Gegebenheiten zu ersetzen:
 EXAMPLE und ORG:: die LDAP-Basis des Servers - beispielsweise für "dc=meine-domain,dc=de" wäre es {{{EXAMPLE=meine-domain}}} und {{{ORG=de}}}
 SYNCAGENT_SECRET:: Passwort des LDAP-Replikations-Accounts (beliebig)
 LDAP_MASTER:: der Name oder die IP des LDAP-Master-Servers
Zeile 8: Zeile 16:
Alle Änderungen lassen sich jeweils mit folgendem Kommando anwenden: {{{
ldapmodify -Y EXTERNAL -H ldapi:///
}}}
Die untenstehenden ldif-Änderungsdaten werden dabei auf der Standardeingabe erwartet.
Zeile 9: Zeile 21:
= Vorbereitung auf dem Master =
== Überblick der folgenden Schritte ==
= Konfiguration des Masters =
== Überblick ==
F
olgendes ist zu tun:
Zeile 15: Zeile 28:
 1. Sync-Modul aktivieren: {{{
 1. sync-Account anlegen: {{{
echo "
# einen Account für die Replikationsabfrage hinzufuegen
dn: cn=syncagent,dc=lohro,dc=de
cn: syncagent
objectClass: top
objectClass: person
sn: syncagent" | ldapadd -D cn=admin,dc=lohro,dc=de -W
}}}
 2. Konfigurationen anpassen: {{{
ldapmodify -Y EXTERNAL -H ldapi:///
}}}
  * in die Standardeingabe folgenden Text kopieren: {{{
# Sync-Modul aktivieren
Zeile 20: Zeile 47:
}}}
 2. füge replikationsrelevante Attribute zum Index hinzu: {{{

# fuege replikationsrelevante Attribute zum Index hinzu
Zeile 26: Zeile 53:
}}}
 3. einen Account für die Replikationsabfrage hinzufügen: {{{
dn: cn=syncagent,dc=EXAMPLE,dc=ORG
cn: syncagent
objectClass: top
objectClass: person
sn: syncagent
}}}
 4. Zugriffsrechte für den sync-Account anlegen: {{{

# Zugriffsrechte für den sync-Account anlegen
Zeile 39: Zeile 59:
}}}
 5. sync-Provider für die LDAP-Datenbank aktivieren: {{{

# sync-Provider für die LDAP-Datenbank aktivieren
Zeile 46: Zeile 66:
}}}
 6. sync-Provider für die LDAP-Konfiguration aktivieren: {{{

# sync-Provider für die LDAP-Konfiguration aktivieren
Zeile 54: Zeile 74:
 7. Passwort für den Sync-Account festlegen: {{{
ldappasswd -D cn=admin,dc=EXAMPLE,dc=ORG -W -S "cn=syncagent,dc=EXAMPLE,dc=ORG"
 3. Passwort für den Sync-Account festlegen: {{{
ldappasswd -D cn=admin,dc=EXAMPLE,dc=ORG -W -s "SYNCAGENT_SECRET" "cn=syncagent,dc=EXAMPLE,dc=ORG"
Zeile 57: Zeile 77:


= Konfiguration des Clients =
== Überblick ==

== Einzelschritte ==
 2. Konfigurationen anpassen: {{{
ldapmodify -Y EXTERNAL -H ldapi:///
}}}
  * in die Standardeingabe folgenden Text kopieren: {{{
# Sync-Modul aktivieren
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: syncprov.la

# fuege replikationsrelevante Attribute zum Index hinzu
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: entryUUID,entryCSN eq

# Datenbank-Replikation aktivieren
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcSyncrepl
olcSyncrepl: {0}rid=2 provider=ldap://LDAP_MASTER
  type=refreshOnly
  bindmethod=simple
  binddn="cn=syncagent,dc=EXAMPLE,dc=ORG"
  credentials=SYNCAGENT_SECRET
  interval="00:00:03:00"
  retry="30 10 300 +"
  timeout=1
  tls_reqcert=never
  schemachecking=off
  searchbase="dc=EXAMPLE,dc=ORG"

# Konfigurationsreplikation aktivieren
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcSyncrepl
olcSyncrepl: {0}rid=1 provider=ldap://LDAP_MASTER
  type=refreshOnly
  bindmethod=simple
  binddn="cn=syncagent,dc=EXAMPLES,dc=ORG"
  credentials=SYNCAGENT_SECRET
  interval="00:00:03:00"
  retry="30 10 300 +"
  timeout=1
  tls_reqcert=never
  schemachecking=off
  searchbase="cn=config"
}}}


= Abschluss =
Nun sollte der Slave-Server sich sofort mit dem Server synchronisieren. Fehlermeldungen finden sich auf der Slave-Seite unter {{{/var/log/debug.log}}}.


= Quellen =
 * [[http://www.openldap.org/doc/admin24/syncrepl.html|OpenLDAP-Doku]]
 * [[http://grungelabs.com/guides/2012/06/08/ha-openldap-debian/|passende LDIF-Konfigurationsschnipsel]]
 * [[http://itdavid.blogspot.de/2012/06/howto-openldap-24-replication-on-centos.html|mehr Erklärungen, weniger konkrete Handlungen]]

Überblick

Ziel ist die Verteilung einer LDAP-Datenbank auf mehr als einem Server. Dies erhöht die Ausfallsicherheit und verteilt die Last.

Dabei existiert ein Master - dies ist der LDAP-Server auf dem Schreib-Operationen erlaubt. Alle anderen LDAP-Server beziehen lediglich im Pull-Verfahren regelmäßig Änderungen von dem Master.

Die Dokumentation bezieht sich auf OpenLDAP v2.4 oder später. Alle Änderungen verwenden das neue LDIF-basierte Konfigurationsformat von OpenLDAP.

In den Beispielen werden die folgenden Variablen verwendet - sie sind durch lokale Gegebenheiten zu ersetzen:

EXAMPLE und ORG

die LDAP-Basis des Servers - beispielsweise für "dc=meine-domain,dc=de" wäre es EXAMPLE=meine-domain und ORG=de

SYNCAGENT_SECRET
Passwort des LDAP-Replikations-Accounts (beliebig)
LDAP_MASTER
der Name oder die IP des LDAP-Master-Servers

Alle Änderungen lassen sich jeweils mit folgendem Kommando anwenden:

ldapmodify -Y EXTERNAL -H ldapi:///

Die untenstehenden ldif-Änderungsdaten werden dabei auf der Standardeingabe erwartet.

Konfiguration des Masters

Überblick

Folgendes ist zu tun:

  • Synchronisations-Overlay für die Konfiguration und die Datenbank aktivieren
  • einen Account für die Datenabfrage anlegen

Einzelschritte

  1. sync-Account anlegen:

    echo "
    # einen Account für die Replikationsabfrage hinzufuegen
    dn: cn=syncagent,dc=lohro,dc=de
    cn: syncagent
    objectClass: top
    objectClass: person
    sn: syncagent" | ldapadd -D cn=admin,dc=lohro,dc=de -W
  2. Konfigurationen anpassen:

    ldapmodify -Y EXTERNAL -H ldapi:///
    • in die Standardeingabe folgenden Text kopieren:

      # Sync-Modul aktivieren
      dn: cn=module{0},cn=config
      changetype: modify
      add: olcModuleLoad
      olcModuleLoad: syncprov.la
      
      # fuege replikationsrelevante Attribute zum Index hinzu
      dn: olcDatabase={1}hdb,cn=config
      changetype: modify
      add: olcDbIndex
      olcDbIndex: entryUUID,entryCSN eq
      
      # Zugriffsrechte für den sync-Account anlegen
      dn: olcDatabase={0}config,cn=config
      changetype: modify
      add: olcAccess
      olcAccess: to * by dn.base="cn=syncagent,dc=EXAMPLE,dc=ORG" read by * +0 break
      
      # sync-Provider für die LDAP-Datenbank aktivieren
      dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config
      changetype: add
      objectClass: olcOverlayConfig
      objectClass: olcSyncProvConfig
      olcOverlay: syncprov
      
      # sync-Provider für die LDAP-Konfiguration aktivieren
      dn: olcOverlay=syncprov,olcDatabase={0}config,cn=config
      changetype: add
      objectClass: olcOverlayConfig
      objectClass: olcSyncProvConfig
      olcOverlay: syncprov
  3. Passwort für den Sync-Account festlegen:

    ldappasswd -D cn=admin,dc=EXAMPLE,dc=ORG -W -s "SYNCAGENT_SECRET" "cn=syncagent,dc=EXAMPLE,dc=ORG"

Konfiguration des Clients

Überblick

Einzelschritte

  1. Konfigurationen anpassen:

    ldapmodify -Y EXTERNAL -H ldapi:///
    • in die Standardeingabe folgenden Text kopieren:

      # Sync-Modul aktivieren
      dn: cn=module{0},cn=config
      changetype: modify
      add: olcModuleLoad
      olcModuleLoad: syncprov.la
      
      # fuege replikationsrelevante Attribute zum Index hinzu
      dn: olcDatabase={1}hdb,cn=config
      changetype: modify
      add: olcDbIndex
      olcDbIndex: entryUUID,entryCSN eq
      
      # Datenbank-Replikation aktivieren
      dn: olcDatabase={1}hdb,cn=config
      changetype: modify
      add: olcSyncrepl
      olcSyncrepl: {0}rid=2 provider=ldap://LDAP_MASTER
        type=refreshOnly
        bindmethod=simple
        binddn="cn=syncagent,dc=EXAMPLE,dc=ORG"
        credentials=SYNCAGENT_SECRET
        interval="00:00:03:00"
        retry="30 10 300 +"
        timeout=1
        tls_reqcert=never
        schemachecking=off
        searchbase="dc=EXAMPLE,dc=ORG"
      
      # Konfigurationsreplikation aktivieren
      dn: olcDatabase={0}config,cn=config
      changetype: modify
      add: olcSyncrepl
      olcSyncrepl: {0}rid=1 provider=ldap://LDAP_MASTER
        type=refreshOnly
        bindmethod=simple
        binddn="cn=syncagent,dc=EXAMPLES,dc=ORG"
        credentials=SYNCAGENT_SECRET
        interval="00:00:03:00"
        retry="30 10 300 +"
        timeout=1
        tls_reqcert=never
        schemachecking=off
        searchbase="cn=config"

Abschluss

Nun sollte der Slave-Server sich sofort mit dem Server synchronisieren. Fehlermeldungen finden sich auf der Slave-Seite unter /var/log/debug.log.

Quellen


Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.