Script auf OPSI-Server während Packetinstallation

Antworten
mawasse
Beiträge: 4
Registriert: 15 Feb 2017, 06:03

Script auf OPSI-Server während Packetinstallation

Beitrag von mawasse »

Hallo,
ich möchte ein paar Parameter aus einer SQL Datenbank auslesen und diese während einer Packetinstallation benutzen.
Kann man Scripte auf dem OPSI Server (nicht auf dem Zielhost) innerhalb einer Packetinstallation aufrufen?

Vielen Dank und viele Grüße
Markus
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Script auf OPSI-Server während Packetinstallation

Beitrag von n.wenselowski »

Hi Markus,

du kannst sowas über eine Erweiterung realisieren.
Darin stehen die alle Möglichkeiten von Python zur Verfügung.


Viele Grüße

Niko

Code: Alles auswählen

import OPSI
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Script auf OPSI-Server während Packetinstallation

Beitrag von n.wenselowski »

Hi,

da war ich zu voreilig. Eigentlich gibt es zwei Parts: das erste ist die Methode zu schaffen, welche ein Script ausführt. Das ist das aus meinem ersten Post.

Der andere Teil ist das Aufrufen dieser Methode mittels opsiServiceCall in deinem Installationsscript.


Gruß

Niko

Code: Alles auswählen

import OPSI
Benutzeravatar
SisterOfMercy
Beiträge: 1522
Registriert: 22 Jun 2012, 19:18

Re: Script auf OPSI-Server während Packetinstallation

Beitrag von SisterOfMercy »

Isn't there a small SQL client for windows that you can use by grabbing its output during the package installation?
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!
mawasse
Beiträge: 4
Registriert: 15 Feb 2017, 06:03

Re: Script auf OPSI-Server während Packetinstallation

Beitrag von mawasse »

Moin Niko,

prima, Danke!
Ich sehe im Webinterface auch schon meine Methode.
Allerdings bekomme ich beim Aufruf
"{"result": null, "id": null, "error": {"message": "Opsi bad rpc error: Failed to decode rpc: No JSON object could be decoded", "class": "OpsiBadRpcError"}}"

Was mache ich falsch?
def MARKUSsqlquery(self, clientId, value=""):
value = "moin"
return value

Viele Grüße
Markus
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Script auf OPSI-Server während Packetinstallation

Beitrag von n.wenselowski »

Hi,

wie rufst du es auf?
Ich würde mal darauf tippen, dass dein erster Parameter nicht in doppelten Anführungszeichen ist.


Gruß

Niko

Code: Alles auswählen

import OPSI
mawasse
Beiträge: 4
Registriert: 15 Feb 2017, 06:03

Re: Script auf OPSI-Server während Packetinstallation

Beitrag von mawasse »

Hallo Nils,

danke, danke, danke! Und schon geht's . . .

Magst Du einem OPSI Anfänger auch noch sagen wie ich es in mein Installationsscript einbaue?

..........................
[Actions]
..
DefVar $theoneparameter$
opsiServiceCall_MARKUSsqlquery
..

[opsiServiceCall_MARKUSsqlquery]
"method": "MARKUSsqlquery"
"params": [
"%HostID%",
"$theoneparameter$"
]
................................

Vielen Dank und viele Grüße
Markus
mawasse
Beiträge: 4
Registriert: 15 Feb 2017, 06:03

Re: Script auf OPSI-Server während Packetinstallation

Beitrag von mawasse »

Moin,

etwas weiter bin ich nun gekommen.
Ich habe meine Python Methode in eine Datei /etc/opsi/backendManager/extend.d/80_custom.conf verschoben.
Nun erscheint die Methode im Webinterface unter dem Pfad interface.

Wenn ich mein Paket installiere steht im opsi-script.log
[6] [Feb 17 13:02:34:164] [test-echo] Calling opsi service at https://192.168.10.101:4447
[6] [Feb 17 13:02:34:164] [test-echo] JSON service request https://192.168.10.101:4447/rpc MARKUSsqlquery
[6] [Feb 17 13:02:34:242] [test-echo] JSON Bench for MARKUSsqlquery "params":["ahw626.xxxx.de",""],"id":1} Start: 13:02:34:164 Time: 00:00:00:078
[6] [Feb 17 13:02:34:340] [test-echo] JSON result: moin
[5] [Feb 17 13:02:34:341] [test-echo]

Aber warum wird nicht "moin" in die Variable $theoneparameter$ geschrieben?

Viele Grüße
Markus
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Script auf OPSI-Server während Packetinstallation

Beitrag von n.wenselowski »

Hi,
mawasse hat geschrieben:Aber warum wird nicht "moin" in die Variable $theoneparameter$ geschrieben?
Weil hier die Python-Variable nichts mit der Winst-Variable zu tun hat.
Du musst den Rückgabewert deiner Funktion auslesen. Wie das geht steht bspw. in den Beispielen im Handbuch ;)


Gruß

Niko

Code: Alles auswählen

import OPSI
Antworten