[gelöst]openldap-Replikation startet nicht

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Theophil T.
Beiträge: 402
Registriert: 22.10.2006 20:24:59
Lizenz eigener Beiträge: MIT Lizenz

[gelöst]openldap-Replikation startet nicht

Beitrag von Theophil T. » 21.02.2009 20:59:23

Hallo,

ich sitze an der letzten Aufgabe an meinem Samba-PDC und -BDC und bekomme die LDAP-Replikation mit syncrepl nicht ans Laufen, wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht... :cry:
Samba hat die Version 3.0.24, LDAP 2.3.30, System Debian Etch 2.6.24.etchnhalf.1-686.

Das LDAP-Verzeichnis des Consumers hatte ich erst bis auf 3 Gruppeneinträge identisch zum Provider, jetzt habe ich zum Test mit dpkg-reconfigure auf dem Consumer eine leere Datenbank angelegt: Sie enthält:
  • # extended LDIF
    #
    # LDAPv3
    # base <> with scope subtree
    # filter: (objectclass=*)
    # requesting: ALL
    #

    # example.local
    dn: dc=example,dc=local
    objectClass: top
    objectClass: dcObject
    objectClass: organization
    o: example.local
    dc: example

    # admin, example.local
    dn: cn=admin,dc=example,dc=local
    objectClass: simpleSecurityObject
    objectClass: organizationalRole
    cn: admin
    description: LDAP administrator
    userPassword:: secret

    # search result
    search: 2
    result: 0 Success

    # numResponses: 3
    # numEntries: 2
Die slapd.conf des Providers:
  • include /etc/ldap/schema/core.schema
    include /etc/ldap/schema/cosine.schema
    include /etc/ldap/schema/nis.schema
    include /etc/ldap/schema/inetorgperson.schema
    include /etc/ldap/schema/samba.schema
    pidfile /var/run/slapd/slapd.pid
    argsfile /var/run/slapd/slapd.args
    loglevel 0
    modulepath /usr/lib/ldap
    moduleload back_bdb
    moduleload syncprov
    sizelimit 500
    tool-threads 1
    backend bdb
    checkpoint 512 30
    database bdb
    suffix "dc=example,dc=local"
    rootdn "cn=admin,dc=example,dc=local"
    rootpw {SSHA}secret
    directory "/var/lib/ldap"
    dbconfig set_cachesize 0 2097152 0
    dbconfig set_lk_max_objects 1500
    dbconfig set_lk_max_locks 1500
    dbconfig set_lk_max_lockers 1500
    index objectClass,entryCSN,entryUUID eq
    index uid eq
    overlay syncprov
    syncprov-checkpoint 100 10
    syncprov-sessionlog 100
    lastmod on
    access to attrs=userPassword,shadowLastChange
    by dn="cn=admin,dc=example,dc=local" write
    by anonymous auth
    by self write
    by * none
    access to dn.base="" by * read
    access to *
    by dn="cn=admin,dc=example,dc=local" write
    by dn="uid=root,ou=users,dc=example,dc=local" write
    by * read
Die slapd.conf des Consumers:
  • include /etc/ldap/schema/core.schema
    include /etc/ldap/schema/cosine.schema
    include /etc/ldap/schema/nis.schema
    include /etc/ldap/schema/inetorgperson.schema
    include /etc/ldap/schema/samba.schema
    pidfile /var/run/slapd/slapd.pid
    argsfile /var/run/slapd/slapd.args
    loglevel 0
    modulepath /usr/lib/ldap
    moduleload back_bdb
    sizelimit 500
    tool-threads 1
    backend bdb
    checkpoint 512 30
    database bdb
    suffix "dc=example,dc=local"
    rootdn "cn=admin,dc=example,dc=local"
    rootpw {SSHA}secret
    directory "/var/lib/ldap"
    dbconfig set_cachesize 0 2097152 0
    dbconfig set_lk_max_objects 1500
    dbconfig set_lk_max_locks 1500
    dbconfig set_lk_max_lockers 1500
    index objectClass eq
    index uid eq
    syncrepl rid=1
    provider=ldap://master.example.local:389
    type=refreshAndPersist
    searchbase="dc=example,dc=local"
    bindmethod=simple
    binddn="uid=syncuser,ou=users,dc=example,dc=local"
    updateref ldap://master.example.local:389
    lastmod on
    access to attrs=userPassword,shadowLastChange
    by dn="cn=admin,dc=example,dc=local" write
    by anonymous auth
    by self write
    by * none
    access to dn.base="" by * read
    access to *
    by dn="cn=admin,dc=example,dc=local" write
    by * read
Die entsprechenden Parameter, die zu syncrepl, etc. gehören, sind eingerückt.

Nachdem das alles so eingerichtet war, habe ich slapd auf beiden Rechnern neu gestartet, als nichts passierte, einen zusätzlichen Eintrag auf dem Provider gemacht, auch ohne Effekt. Die OpenLDAP-Doku schreibt von einem "synchronisation cookie", das verstehe ich aber nicht genau, auch die 2. Möglichkeit ist mir noch nicht ganz klar:
The initial loading of the replica content can be performed either by starting the syncrepl engine with no synchronization cookie or by populating the consumer replica by adding an LDIF file dumped as a backup at the provider.
Ist "updateref" evtl.falsch?
Wer hat einen guten Tip für mich?

Danke und viele Grüße
Theophil
Zuletzt geändert von Theophil T. am 25.02.2009 20:23:06, insgesamt 1-mal geändert.

Theophil T.
Beiträge: 402
Registriert: 22.10.2006 20:24:59
Lizenz eigener Beiträge: MIT Lizenz

Re: openldap-Replikation startet nicht

Beitrag von Theophil T. » 25.02.2009 20:22:10

Ich konnte inzwischen das Problem lösen:

1.war als binddn ein samba-user eingetragen, dies hat wohl nicht ausgereicht. Ich habe im LDAP-Verzeichnis einen User angelegt und mit ldappasswd ein Passwort vergeben.
  • cn=syncuser,dc=example,dc=local
    objectClass: simpleSecurityObject
    objectClass: organizationalRole
    cn: syncuser
    description: LDAP syncrepl user
2. habe ich den Consumer-slapd gestoppt, alle Dateien in /var/lib/ldap gesichert und aus dem Verz. entfernt und slapd ohne Datenbankdateien gestartet

Code: Alles auswählen

# slapd -d 16384  # als root im syncrepl Debug-Modus
Anschließend musste ich noch die Rechte an den DB-Dateien an openldap vergeben.

Jetzt läuft es :D

Theophil

Antworten