Wie eigenes LDAP Schema permanent verankern

german

#1

Hallo.

Ich habe hier ein LDAP Schema das ich in die slapd.conf eingetragen habe. Leider verschwindet der Eintrag jedes Mal wenn es ein Update für den LDAP unter UCS 4.0 gibt.

Kann ich das permanet irgendwo hinterlegen?

Gruß Querl


#2

Hallo,

UCS pflegt die gesamte LDAP Konfiguration selbst, wie man in der fetten Warnung im Dateikopf der /etc/ldap/slapd.conf lesen kann. Das Schema wird durch UCS ordentlich eingegliedert, wenn man es im Verzeichnis

/var/lib/univention-ldap/local-schema

ablegt und danach

ucr commit /etc/ldap/slapd.conf

aufruft. Danach steht die betreffende Include-Anweisung sauber in der slapd.conf und wird auch bei folgenden Updates immer berücksichtigt.

Bitte aber beachten, daß diese Methode nur dann ausreichend ist, wenn man keine weiteren LDAP Hosts (DC Slave, DC Backup) in der Domäne hat. Mindestens auf DC Backup Systemen müßten Sie die Eingliederung in der gleichen Weise vornehmen.

Sollte Ihre Domäne schon etwas umfangreicher sein, lohnt sich eventuell auch der Weg, den Anwendungen beschreiten, wenn sie ein eigenes LDAP Schema mitbringen. Das Verfahren ist in der Entwicklerdokumentation beschrieben. Der Vorteil dieser Methode wäre, daß alle Slave und Backup DCs das Schema beim Replizieren des LDAP automatisch erhalten würden und Sie sich dann gar nicht mehr um die Verteilung in der Domäne kümmern müßten.

Viele Grüße
Frank Greif.


#3

Ok. Das hat funktionert.

Komisch. Bei mir steht der fette Hinweis auf die [quote]/var/lib/univention-ldap/local-schema[/quote] nicht im Header der slap.conf. Hatte mir zwar die Einträge innerhalb der

angesehen, aber das hat mir nicht so richtig weiter geholfen.


#4

Hallo,

der Hinweis weist nur darauf hin, daß man in der Datei nicht von Hand editieren soll, da jegliche Änderungen beim nächsten ucr commit verlorengehen. Und darunter steht die lange Liste der Templates…

Die slapd.conf wird aus vielen Templates zusammengebaut, die alle in /etc/univention/templates/files/etc/ldap/slapd.conf.d stehen. Verantwortlich für das Eingliedern “fremder” Schema Dateien ist die 30univention-ldap-server_head ab Zeile 45:

     45 if configRegistry.get('ldap/server/type', 'slave') == 'master':
     46         if os.path.exists('/var/lib/univention-ldap/local-schema'):
     47                 for schemaFile in sorted(os.listdir('/var/lib/univention-ldap/local-schema')):
     48                         if not isSchemaFileIncluded(schemaFile):
     49                                 print 'include         /var/lib/univention-ldap/local-schema/%s' % schemaFile

Zugegeben, ein cooles Feature, dessen Existenz man nicht ahnt.

viele Grüße
Frank Greif.