Script auf OPSI-Server während Packetinstallation

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

Script auf OPSI-Server während Packetinstallation

Beitragvon mawasse » 15 Feb 2017, 06:11

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
Beiträge: 2457
Registriert: 04 Apr 2013, 12:15

Re: Script auf OPSI-Server während Packetinstallation

Beitragvon n.wenselowski » 15 Feb 2017, 15:07

Hi Markus,

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


Viele Grüße

Niko
Kein Support per DM!
_________________________
opsi support - uib gmbh
For productive opsi installations we recommend support contracts.

Benutzeravatar
n.wenselowski
Beiträge: 2457
Registriert: 04 Apr 2013, 12:15

Re: Script auf OPSI-Server während Packetinstallation

Beitragvon n.wenselowski » 15 Feb 2017, 15:09

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
Kein Support per DM!
_________________________
opsi support - uib gmbh
For productive opsi installations we recommend support contracts.

Benutzeravatar
SisterOfMercy
Beiträge: 849
Registriert: 22 Jun 2012, 19:18

Re: Script auf OPSI-Server während Packetinstallation

Beitragvon SisterOfMercy » 15 Feb 2017, 16:26

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

Beitragvon mawasse » 16 Feb 2017, 10:04

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
Beiträge: 2457
Registriert: 04 Apr 2013, 12:15

Re: Script auf OPSI-Server während Packetinstallation

Beitragvon n.wenselowski » 16 Feb 2017, 14:06

Hi,

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


Gruß

Niko
Kein Support per DM!
_________________________
opsi support - uib gmbh
For productive opsi installations we recommend support contracts.

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

Re: Script auf OPSI-Server während Packetinstallation

Beitragvon mawasse » 16 Feb 2017, 14:58

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

Beitragvon mawasse » 17 Feb 2017, 13:41

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
Beiträge: 2457
Registriert: 04 Apr 2013, 12:15

Re: Script auf OPSI-Server während Packetinstallation

Beitragvon n.wenselowski » 01 Mär 2017, 10:37

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
Kein Support per DM!
_________________________
opsi support - uib gmbh
For productive opsi installations we recommend support contracts.


Zurück zu „Freier Support“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast