Import_computer und hook-script

german

#1

Hallo zusammen,
ich würde gerne nach dem Import von Computern ein Hook-script starten das einen zweiten dhcp-Eintrag mit der MAC der WLAN-Schnittstelle erzeugt.
Leider fehlt mir gerade der richtige Einstiegspunkt wie ich den Eintrag ansprechen kann.
Ich hab mal den interessanten Bereich im importscript durchgesehen, wirklich erhellend war das aber nicht.
Kann mich jemand in die richtige Richtung lenken…

Grüße
Gerd


#2

Hallo,

Aus meiner Sicht sieht das nicht allzu kompliziert aus, was da in Kapitel 10 in der Doku steht. Grob gesagt, müßte man:
[ul]
[li] die Importdatei um ein weiteres Feld breiter machen, das die MAC-Adresse der WLAN-Karte beinhaltet[/li]
[li] in das Verzeichnis /usr/share/ucs-school-import/hooks/computer_create_post.d einen Skript legen, der die Verarbeitung vornimmt.[/li][/ul]

Sprache des Skriptes ist eigentlich egal, kann Shell sein oder Perl oder Python, je nachdem womit Sie sich auskennen. Der Skript bekommt als erstes Argument den Namen einer Datei, in der die aktuell zu verarbeitende Zeile (ein Computerobjekt) steht, und als zweites den DN (also den voll qualifizierten LDAP-Namen) des frisch angelegten Computers. Aus diesen Angaben kann man sich dann einen UDM-Befehl (udm computers… modify) zusammenbauen.

Ich hab selbst kein UCS@school im Einsatz. Ich kann beim Zusammenbauen des Skripts helfen, wenn Sie mir mal ein Objekt listen, wie es am Ende wunschgemäß aussehen soll, also die Adresse mal an der Adminoberfläche eingeben, und dann in der Shell den Befehl udm computers/windows list --filter 'cn=computername' eingeben und die Ausgabe hier posten (sensitive Daten natürlich abwandeln). Wenn Sie andere Arten von Clients importieren -> dann das ‘windows’ in dem Befehl gegen die jeweilige Computerrolle austauschen.

Viele Grüße,
Frank Greif.


#3

Hallo Herr Greif,
Sie hatten recht, es war dann tatsächlich nicht kompliziert.
Mir hat der Weg gefehlt wie die Änderungen ins LDAP kommen, Ihr Hinweis auf udm war der entscheidende Schups in die richtige Richtung. Besten dank dafür.

Falls noch jemand - wie ich auch - lieber googeld als das Handbuch zu lesen, hier mal die Lösung für unser Problem :wink:

#!/usr/bin/python2.6 -OO
# -*- coding: utf-8 -*-

import sys
import os

line =  open(sys.argv[1]).readlines()
parsed=line[0].strip('\r\n').split('\t')
IP = parsed[4]
MAC = parsed[7]
IP = IP.replace(".0", ".")
DN = sys.argv[2]
befehl = "udm computers/windows modify --dn " +DN +" --append mac="+MAC +" --append dhcpEntryZone='cn=<mein_name>,cn=dhcp,ou=<meine_ou>,dc=<meine_domain>,dc=<meine_tld> " +IP+" " +MAC +"'"
os.system(befehl)
print "neue Mac ist "+MAC
print "neue IP ist "+IP

Grüße
Gerd Stange