Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste Überarbeitung Beide Seiten der Revision | ||
kb [2014/03/28 14:06] flacco [Letzte Etappe - Dovecot] |
kb [2015/03/26 16:25] flacco [ISC DHCP mit ActiveDirectory] |
||
---|---|---|---|
Zeile 572: | Zeile 572: | ||
==== Mailversand - SMTP-Auth mit Dovecot-SASL ==== | ==== Mailversand - SMTP-Auth mit Dovecot-SASL ==== | ||
- | ===== ISC DHCP LDAP Schema nach Samba 4 LDAP überführen ===== | + | ===== ISC DHCP mit ActiveDirectory ===== |
- | Suchen und ersetzen der Attributnamen und Objektklassen: | + | Um den DHCP-Server des ISC mit einem Active Directory als Backend zu verwenden, muss dieser so gepatcht werden, dass er andere LDAP-Attribut- und Objektklassen-Namen akzeptiert. Dies ist notwendig, da Microsoft für seinen DHCP-Server teils identische Namen für Attribute und Objektklassen verwendet. Ohne das Patchen führt der Versuch einen ISC DHCP-Server Datenbestand aus einem OpenLDAP Verzeichnis in ein Active Directory zu migrieren zu "Objectclass Violations" die nicht zu beheben sind. |
+ | |||
+ | Den Patch zu erstellen ist etwas umständlich, da im openSUSE-Paket bereits Patches auf die von uns zu patchenden Dateien angewendet werden. D.h. um unseren Patch zu erzeugen müssen zunächst die anderen Patches auf den Quellcode angewendet werden. | ||
+ | |||
+ | Zu patchen sind folgende Dateien: | ||
+ | |||
+ | * server/ldap.c | ||
+ | * contrib/ldap/README.ldap | ||
+ | * contrib/ldap/dhcpd-conf-to-ldap | ||
+ | * contrib/ldap/dhcp.shema | ||
+ | |||
+ | Im ersten Schritt müssen aus dem Repository "network:dhcp" (https://build.opensuse.org/package/show/network:dhcp/dhcp) des openSUSE Buildservice das Quellcode-Archiv (dhcp-4.x.y.tar.gz), sowie die beiden Patches "0007-dhcp-4.2.6-ldap-mt01.patch" und "0022-dhcp-4.2.x-contrib-conf-to-ldap-reorder.886094.patch" heruntergeladen werden. | ||
+ | |||
+ | Das Quellcode-Archiv ist in ein Arbeitsverzeichnis zu extrahieren. Danach sind die beiden heruntergeladenen Patches darauf anzuwenden: | ||
<code> | <code> | ||
- | linux:~ # cat README.ldap | sed /dhcp[A-Z]/s/dhcp/iscDhcp/g > ad.README.ldap | + | heinzb@knurps:~/baustelle/dhcp-4.2.6> patch -p1 server/ldap.c 0007-dhcp-4.2.6-ldap-mt01.patch |
+ | heinzb@knurps:~/baustelle/dhcp-4.2.6> patch -p1 contrib/ldap/dhcpd-conf-to-ldap 0022-dhcp-4.2.x-contrib-conf-to-ldap-reorder.886094.patch | ||
</code> | </code> | ||
+ | |||
+ | Treten dabei Fehler auf, sind diese in einer auf **.rej** endenden Datei im Verzeichnis der zu patchenden Datei zu finden. Sind die Fehler überschaubar, lassen sich die Änderungen auch manuell durchführen. | ||
+ | |||
+ | Jetz sind per suchen und ersetzen der Attributnamen und Objektklassen mit **//sed//** neue Dateien mit den gewünschten Änderungen zu erzeugen: | ||
+ | |||
+ | <code> | ||
+ | heinzb@knurps:~/baustelle/dhcp-4.2.6> cat server/ldap.c | sed /dhcp[A-Z]/s/dhcp/iscDhcp/g > server/ad.ldap.c | ||
+ | heinzb@knurps:~/baustelle/dhcp-4.2.6> cat contrib/ldap/README.ldap | sed /dhcp[A-Z]/s/dhcp/iscDhcp/g > contrib/ldap/ad.README.ldap | ||
+ | heinzb@knurps:~/baustelle/dhcp-4.2.6> cat contrib/ldap/dhcpd-conf-to-ldap | sed /dhcp[A-Z]/s/dhcp/iscDhcp/g > contrib/ldap/ad.dhcpd-conf-to-ldap | ||
+ | heinzb@knurps:~/baustelle/dhcp-4.2.6> cat contrib/ldap/dhcp.schema | sed /dhcp[A-Z]/s/dhcp/iscDhcp/g > contrib/ldap/ad.dhcp.schema | ||
+ | </code> | ||
+ | |||
+ | Jetzt werden mit //**diff**// einzelne Patches für jede der Dateien erzeugt: | ||
+ | <code> | ||
+ | heinzb@knurps:~/baustelle/dhcp-4.2.6> diff -u server/ldap.c server/ad.ldap.c > ../ldap.c.patch | ||
+ | heinzb@knurps:~/baustelle/dhcp-4.2.6> diff -u contrib/ldap/README.ldap contrib/ldap/ad.README.ldap > ../README.ldap.patch | ||
+ | heinzb@knurps:~/baustelle/dhcp-4.2.6> diff -u contrib/ldap/dhcpd-conf-to-ldap contrib/ldap/ad.dhcpd-conf-to-ldap > ../dhcpd-conf-to-ldap.patch | ||
+ | heinzb@knurps:~/baustelle/dhcp-4.2.6> diff -u contrib/ldap/dhcp.schema contrib/ldap/ad.dhcp.schema > ../dhcp.schema.patch | ||
+ | </code> | ||
+ | |||
+ | Alle Einzelpatches werden dann zum Gesamtpatch zusammengesetzt: | ||
+ | |||
+ | <code> | ||
+ | heinzb@knurps:~/baustelle> cat ldap.c.patch > 0099-AD-LDAP.patch | ||
+ | heinzb@knurps:~/baustelle> cat README.ldap.patch >> 0099-AD-LDAP.patch | ||
+ | heinzb@knurps:~/baustelle> cat dhcpd-conf-to-ldap.patch >> 0099-AD-LDAP.patch | ||
+ | heinzb@knurps:~/baustelle> cat dhcp.schema.patch >> 0099-AD-LDAP.patch | ||
+ | </code> | ||
+ | |||
+ | Danach den Patch in unser Testing-Repositorie hochladen und die Spec-Datei des dhcp-Paketes anpassen: | ||
+ | |||
+ | Ab Zeile 138 (ca.) | ||
+ | <code> | ||
+ | # invis-server.org Stefan Schaefer | ||
+ | Patch99: 0099-AD-LDAP.patch | ||
+ | </code> | ||
+ | |||
+ | Ab Zeile: 282 (ca.) | ||
+ | <code> | ||
+ | %if %{with_ldap} | ||
+ | # Stefan Schaefer - invis-server.org | ||
+ | %patch99 -p1 | ||
+ | %endif | ||
+ | </code> | ||
+ | |||
+ | Die Zeilenangaben sind natürlich nicht genau, das sich das Spec-File mit jeder neuen Version ändern kann. Wichtig ist nur, dass unser Patch als letzter angewendete wird. |