ich arbeite momentan an einem Skript, dass mir OPSI-Clients automatisch anlegt. Dies funktioniert auch soweit wunderbar, doch nun hänge ich beim nächsten Schritt fest. Die angelegten Clients sollen anschließend eine Hardware-Inventarisierung durchführen, wozu ich das Produkt "hwinvent" bei den jeweiligen Clients auf "once" setzen möchte:
Mein Code sie wie folgt aus:
Code: Alles auswählen
from OPSI.Backend.BackendManager import BackendManager
backend = BackendManager(
dispatchConfigFile=u'/etc/opsi/backendManager/dispatch.conf',
backendConfigDir='/etc/opsi/backends',
extensionConfigDir=u'/etc/opsi/backendManager/extend.d')
backend.host_createOpsiClient(id='{0}.opsi.local'.format(cl_name), ipAddress='255.255.255.255', hardwareAddress='01:23:45:67:89:01')
backend.setProductActionRequest(productId='hwinvent', cliendId='{0}.opsi.local'.format(cl_name), actionRequest='once')
Bislang habe ich nicht damit zu kämpfen gehabt, dass er den Depot-Server nicht findet. In einem weiteren Thread hier habe ich schon gelesen, dass der Depot-Server eigentlich automatisch gesucht/gefunden wird. Die Lösung für den Thread-Ersteller war, dem Client beim Anlegen einem Depot zuzuweisen. Da bei mir auf dem Opsi-Server nur 1 Depot existiert, und ich in der Syntax der createOpsiClient-Methode nichts gefunden habe, wo man einen Depot-Server zuweisen kann, gehen mir gerade die Ansätze aus.Traceback (most recent call last):
File "/path/to/cgi-bin/script.py", line drölf, in <module>
backend.setProductActionRequest(productId='hwinvent', cliendId='{0}.opsi.local'.format(cl_name), actionRequest='once')
File "<string>", line 1, in setProductActionRequest
File "/usr/lib/python2.7/dist_packages/OPSI/Backend/Backend.py", line 488, in _executeMethod
return meth(**kwargs)
File "/etc/opsi/backendManager/extend.d/20_legacy.conf", line 1166, in setProductActionRequest
actionRequest = actionRequest
File "/etc/opsi/backendManager/extend.d/20_legacy.conf", line 1082, in setProductState
depotId = self.getDepotId(clientId=objectId)
File "/etc/opsi/backendManager/extend.d/20_legacy.conf", line 711, in getDepotId
raise BackendConfigurationError(u"Failed to get depot server for client '%s'" % clientId)
BackendConfigurationError: <BackendConfigurationError(u"Failed to get depot server for client 'clientINV.opsi.local'")>
Kann mir jemand helfen?
Viele Grüße

Lucky