Host Parameter aus Winst Script ändern

Antworten
magicalUnicorn
Beiträge: 201
Registriert: 07 Mär 2019, 14:46

Host Parameter aus Winst Script ändern

Beitrag von magicalUnicorn »

Hallo Zusammen,

ich würde gerne für eine Bestimmte Gruppe von Rechnern auf dem Server Host-Parameter anpassen. Allerdings traue ich meinen Hiwis nicht wirklich zu, das ganze ordentlich und sorgfältig zu machen, weswegen ich das ganze als per OPSI-Paket lösen wollte.

Ich bin dabei hier auf folgendes gestoßen:

Code: Alles auswählen

[opsiServiceCall_set_Connection_Active]
"method": "setGeneralConfigValue"
"params": [
"opsiclientd.event_net_connection.active",
"true",
"%hostId%"
]
Das scheint aber in der Form nicht mehr zu funktionieren und aus dieversen Dokus und Handbüchern bin ich dem Ziel leider auch nicht näher gekommen. Weiß einer zufällig wie das geht?
mattiasmab
Beiträge: 90
Registriert: 29 Jan 2021, 12:17

Re: Host Parameter aus Winst Script ändern

Beitrag von mattiasmab »

Hier mal ein Ausschnitt aus dem Paket opsi-wan-config-on/off:

Code: Alles auswählen

[Actions]
requiredWinstVersion >= "4.12.1.5"
DefVar $ProductId$
DefVar $cfgStateO$
DefVar $cfgStateArray$
Defstringlist $jsonObjList$

set $cfgStateO$ = "{}"
set $cfgStateO$ = jsonAsObjectSetStringtypeValueByKey($cfgStateO$, "type", "ConfigState")
;set $cfgStateO$ = jsonAsObjectSetStringtypeValueByKey($cfgStateO$, "configId", "opsiclientd.event_timer.active")
; Für dein Anliegen laut deinem Code geändert in:
set $cfgStateO$ = jsonAsObjectSetStringtypeValueByKey($cfgStateO$, "configId", "opsiclientd.event_net_connection.active")
set $cfgStateO$ = jsonAsObjectSetValueByKey($cfgStateO$, "values", "[true]")
;set $cfgStateO$ = jsonAsObjectSetStringtypeValueByKey($cfgStateO$, "objectId", "%opsiserviceUser%")
; Geändert in hostid - bei einem test bei mir ist opsiserveruser leer
set $cfgStateO$ = jsonAsObjectSetStringtypeValueByKey($cfgStateO$, "objectId", "%hostid%")
set $jsonObjList$ = addtolist($jsonObjList$, $cfgStateO$)

set $cfgStateArray$ =  jsonStringListToJsonArray($jsonObjList$)

markErrorNumber
OpsiServiceCall_configState_updateObjects
if errorsOccuredSinceMark > 0
	isFatalError
endif 

;ExitWindows /Reboot

[OpsiServiceCall_configState_updateObjects]
"method": "configState_updateObjects"
"params": [
           '$cfgStateArray$',
          ]
Zuletzt geändert von mattiasmab am 13 Nov 2021, 17:03, insgesamt 1-mal geändert.
magicalUnicorn
Beiträge: 201
Registriert: 07 Mär 2019, 14:46

Re: Host Parameter aus Winst Script ändern

Beitrag von magicalUnicorn »

Hui da muss ich erstmal gucken, dass ich das verstehe. Auf den ersten Blick erschlägt mich das schon ziemlich, vor allem weil ich einige Parameter anpacken müsste :D
Benutzeravatar
ThomasT
uib-Team
Beiträge: 565
Registriert: 26 Jun 2013, 12:26

Re: Host Parameter aus Winst Script ändern

Beitrag von ThomasT »

Kannst du vielleicht einmal genau darlegen, was du ändern willst? Also welche "HostParameter" du genau ändern willst und warum.


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


mattiasmab
Beiträge: 90
Registriert: 29 Jan 2021, 12:17

Re: Host Parameter aus Winst Script ändern

Beitrag von mattiasmab »

magicalUnicorn hat geschrieben: 12 Nov 2021, 13:47 Hui da muss ich erstmal gucken, dass ich das verstehe. Auf den ersten Blick erschlägt mich das schon ziemlich, vor allem weil ich einige Parameter anpacken müsste :D
Als einfache Variante des Codes habe ich das mal direkt zusammengeschrieben - ohne das dynamische Array.

Code: Alles auswählen

[OpsiServiceCall_set_Connection_Active]
"method": "configState_create"
"params": [
"opsiclientd.event_net_connection.active",
"%hostId%",
"true"
]
Die Methode setGeneralConfigValue existiert auf jeden Fall noch, aber ich konnte damit per OPSI-Script auch keine Änderung erzeugen. Die selbe Änderung des selben Wertes durch diese Methode durch `opsi-admin -dic` auf dem Server direkt hingegen ging. Leider bringen mich die Logs auch nicht weiter, warum es per WINST nicht will. Die ACLs scheinen es zumindest nicht zu verhindern, wenn ich das richtig sehe... Mit obigem Befehl geht es auf jeden Fall, da es direkt configState_create nutzt (was wiederum createObject und somit wiederum insertObject).
Wichtig bei dieser Methode ist allerdings, dass der Host-Parameter auf dem ConfigServer bereits existiert - notfalls zuvor per configEd oder API anlegen (z.B: `opsi-admin -d method config_createUnicode opsiclientd.event_gui_startup.working_window`)
magicalUnicorn
Beiträge: 201
Registriert: 07 Mär 2019, 14:46

Re: Host Parameter aus Winst Script ändern

Beitrag von magicalUnicorn »

ThomasT hat geschrieben: 12 Nov 2021, 14:31 Kannst du vielleicht einmal genau darlegen, was du ändern willst? Also welche "HostParameter" du genau ändern willst und warum.
Ich möchte unter anderem folgende Host-Parameter ändern: opsiclientd.event_gui_startup.active, opsiclientd.event_gui_startup{user_logged_in}.active, opsiclientd.event_net_connection.active und opsiclientd.event_timer.active.

WIe an der Auswahl der HostParameter eventuell erkenntlich, geschieht die Änderung für die WAN-Erweiterung, welche wir auf einigen Clients (aber bei weitem nicht allen) ausrollen wollen. Damit die Host-Parameter nicht jedes mal wenn ein weiterer Client die WAN-Erweieterung erhält manuell zugewiesen werden müssen, hab ich die Option das über ein Winst Script zu machen für die einfachste Lösung gehalten.

Man kann zwar die Host-Parameter für eine ganze Gruppe ändern, allerdings übernehmen dann Clients, die neu zu dieser Gruppe hinzugefügt werden dann ja nicht die Config.
mattiasmab
Beiträge: 90
Registriert: 29 Jan 2021, 12:17

Re: Host Parameter aus Winst Script ändern

Beitrag von mattiasmab »

Auch wenn ich den Unterschied zwischen einem zugewiesenen Paket zum Setzen der Parameter und auf dem Client-Reiter einem Kaken-Setzen nicht verstehe, gibt es genau dafür die Pakete opsi-wan-config-on bzw. opsi-wan-config-off von UIB selbst.
Antworten