Erstellen opsi-client über python-script

Antworten
cre
Beiträge: 3
Registriert: 14 Mär 2016, 12:28

Erstellen opsi-client über python-script

Beitrag von cre »

Client anlegen via python

Hallo,

bei der automatischen Installation von Win7 (64Bit) komme ich leider nicht weiter.

Wenn ich einen Client manuell über Opsi-configed eintrage funktioniert alles problemlos und die Installation gelingt.

Versuche ich allerdings die neuen Clients über ein Python script einzubinden und anschliessend zu installieren, schlägt die Installation fehl:
Die Antwortdatei für die unbeaufsichtigte Installation [C:\Windows\Panther\unattend.xml] für Durchgang [specialize] konnte nicht analysiert oder verarbeitet werden. Die Antwortdatei ist ungültig.
Zum Vorgehen:

Es sollen Installationen vorgenommen werden, die entsprechenden Rechner sind dem System völlig unbekannt.
Die Rechner senden beim booten einen DHCP-Request, der vom Server auch beantwortet wird.
Sie nehmen allerdings die entsprechende DHCP-Offer nicht an.
Daher wird über das Script die syslog gefiltert nach entsprechenden Einträgen.

Mit den gefilterten (neuen) MAC-Adressen wird anschliessend der Client angelegt

Code: Alles auswählen

call(["opsi-admin", "-d", "method", "createClient", "'client" + str(<someID>) + "'", "'uib.local'", "''", "''", "'" + <theIP> + "'", "'" + <theMAC> + "'"])
Diese Schritte laufen alle einwandfrei. Der neue Client erscheint im opsi-configed.
Wenn ich ihm die Installation zuweise werden, wie schon oben geschrieben, die ersten Schritte ausgeführt. Beim letzten Schritt kommt es dann zur Fehlermeldung.

Danke schonmal im Voraus.

Beste Grüße
uncle_scrooge
Beiträge: 650
Registriert: 21 Feb 2012, 12:03
Wohnort: Mainz

Re: Erstellen opsi-client über python-script

Beitrag von uncle_scrooge »

Eigene unattend.xml? Oder Original von uib?
Die Logs unterhalb von c:\panther schon durchgesehen?
cre
Beiträge: 3
Registriert: 14 Mär 2016, 12:28

Re: Erstellen opsi-client über python-script

Beitrag von cre »

uncle_scrooge hat geschrieben:Eigene unattend.xml? Oder Original von uib?
Die Logs unterhalb von c:\panther schon durchgesehen?
Danke für den Hinweis.
Ich hab den Fehler am falschen Ende der Kette gesucht (die Vermutung war, dass ich noch eine Einstellung vergessen hatte).

In der Tat haben die Logs auf dem Zielsystem den Fehler gezeigt.
Der Clientname hatte zu viele Zeichen (15 sind wohl nur erlaubt).

Vielen Dank und Beste Grüße
uncle_scrooge
Beiträge: 650
Registriert: 21 Feb 2012, 12:03
Wohnort: Mainz

Re: Erstellen opsi-client über python-script

Beitrag von uncle_scrooge »

NetBIOS ist schon was Feines.
Wie eine Fußhupe. Kaum denkst Du, Du bist den Kläffer endlich los, hast Du ihn wieder am Hosenbein.
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Erstellen opsi-client über python-script

Beitrag von n.wenselowski »

Hi,
cre hat geschrieben:

Code: Alles auswählen

call(["opsi-admin", "-d", "method", "createClient", "'client" + str(<someID>) + "'", "'uib.local'", "''", "''", "'" + <theIP> + "'", "'" + <theMAC> + "'"])
Es macht mich ja wirklich betroffen das zu sehen, weil opsi-admin auch ein Python-Tool ist und es das Package OPSI gibt. :shock:
Dadurch kann man sehr einfach - und deutlich schneller als über opsi-admin - mit dem Backend arbeiten.

Hier mal die direkte Variante:

Code: Alles auswählen

from OPSI.Backend.BackendManager import BackendManager

backend = BackendManager(
        dispatchConfigFile=u'/etc/opsi/backendManager/dispatch.conf',
        backendConfigDir=u'/etc/opsi/backends',
        extensionConfigDir=u'/etc/opsi/backendManager/extend.d'
)
# Ab python-opsi 4.0.6.39 geht es dann sogar so:
# backend = BackendManager()

# Direkter Weg ohne Backend-Erweiterung:
backend.host_createOpsiClient(id='client{0}.uib.local'.format(someID), ipAddress=theIP, hardwareAddress=theMAC)

# Über die Erweiterung wäre es dann:
# backend.createClient("client" + str(someID), 'uib.local', ipAddress=theIP, hardwareAddress=theMAC)
Gerade wenn es darum geht viele Clients anzulegen wird man hier die eine oder andere Sekunde sparen können. ;)


Viele Grüße

Niko

Code: Alles auswählen

import OPSI
Antworten