OpsiServiceCall host_renameOpsiClient setzt Produkte zurück

Antworten
Decision
Beiträge: 28
Registriert: 02 Sep 2021, 17:04

OpsiServiceCall host_renameOpsiClient setzt Produkte zurück

Beitrag von Decision »

Halo zusammen,

ich habe ein Produkt, welches Opsi-Clients umbenennt.

Auf dem Client wird der Clientname in
"C:\Program Files (x86)\opsi.org\opsi-client-agent\opsiclientd\opsiclientd.conf" angepasst.
Danach führe ich einen Rename in der Domäne durch und mache vor dem Reboot einen Opsi-Servicecall,
um den PC im Opsi umzubenennen.

Code: Alles auswählen

[OpsiServiceCall_host_renameOpsiClient]
"method": "host_renameOpsiClient"
"params": [
"$OldPCName$",
"$NewPCName$"
]
Der Client wird sauber umbenannt, allerdings werden dabei alle Produkte zurückgesetzt, Local wie auch Netboot. Der Client hat also
unter dem neuen Namen laut Opsi keine Produkte mehr installiert.

Das Verhalten scheint neu zu sein, da es bis vor einiger Zeit problemlos funktioniert hat.

Hat jemand eine Idee, woran das liegen könnte?

Beste Grüße,
Michael
Decision
Beiträge: 28
Registriert: 02 Sep 2021, 17:04

Re: OpsiServiceCall host_renameOpsiClient setzt Produkte zurück

Beitrag von Decision »

Hallo zusammen,

kann jemand verifizieren, ob es in einer anderen Umgebung ebenfalls so ist und es nicht nur ein Problem meines Configservers ist?
Oder hat jemand eine Lösung bzw. eine Workaround für das Problem?

Beste Grüße,
Michael
magicalUnicorn
Beiträge: 201
Registriert: 07 Mär 2019, 14:46

Re: OpsiServiceCall host_renameOpsiClient setzt Produkte zurück

Beitrag von magicalUnicorn »

Ich hab das mal bei uns getestet (wohlgemerkt über das RPC-Interface und nicht aus dem Skript heraus) und da wurden die Produkte nicht zurückgesetzt.
Benutzeravatar
n.doerrer
uib-Team
Beiträge: 408
Registriert: 23 Okt 2020, 16:11

Re: OpsiServiceCall host_renameOpsiClient setzt Produkte zurück

Beitrag von n.doerrer »

Moin,

die Installationsstände sollten mit umgezogen werden.
Welche Version hat der opsiconfd denn?
Bitte einmal prüfen, ob der Fehler wirklich backend-seitig ist, oder nur ein Anzeigefehler (Configed neu starten?).

Code: Alles auswählen

opsi-cli jsonrpc execute productOnClient_getObjects [] '{"clientId": "<neuer Name des Clients>"}'
(<neuer Name des Clients> entsprechend ersetzen)
Wenn dort etwas auftaucht, dann wurden die Daten erfolgreich umgezogen.


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


Decision
Beiträge: 28
Registriert: 02 Sep 2021, 17:04

Re: OpsiServiceCall host_renameOpsiClient setzt Produkte zurück

Beitrag von Decision »

Hallo zusammen,

danke erstmal für eure Rückmeldungen.

Code: Alles auswählen

opsi-cli jsonrpc execute productOnClient_getObjects

gibt nach dem Ausführen des Produkts nichts zurück, es scheint also kein Anzeigefehler zu sein.

Wenn ich

Code: Alles auswählen

opsi-cli jsonrpc execute host_renameOpsiClient
ausführe, dann bleibt der Installationsstatus der Produkte bei mir auch erhalten.

Was macht der Servicecall anders, als das RPC-Interface (danke fürs Testen, magicalUnicorn) oder die Opsi-CLI?
Vielleicht irgendwas in Richtung Berechtigungen in der ACL?

Beste Grüße,
Michael
Benutzeravatar
n.doerrer
uib-Team
Beiträge: 408
Registriert: 23 Okt 2020, 16:11

Re: OpsiServiceCall host_renameOpsiClient setzt Produkte zurück

Beitrag von n.doerrer »

Moin,

ja, acl sollte es sein. Grundsätzlich gehen sowohl die opsiservicecalls von opsi-script als auch opsi-cli über das RPC-Interface.
Aber bei opsi-script ist der "user" ein Host und darf daher acl-seitig nur Objekte verändern, die ihm selbst ("self") gehören. Beim Umbenennen von host A zu host B ist man abhängig vom genauen Prozedere ja entweder host A und darf host B nicht bearbeiten oder andersherum.

Zum Umbenennen von Hosts kann man auch folgendermaßen vorgehen:
In der /etc/opsi/opsiconfd.conf auf dem server diese Konfiguration setzen

Code: Alles auswählen

allow-host-key-only-auth = true
Anschließend clients opsi-seitig umbenennen. Wenn sich die betroffenen clients das nächste mal verbinden, dürfen sie das (mit korrektem host-key, auch wenn die host-id eigentlich nicht mehr valide ist) und passen dann automatisch bei sich lokal die host-id an.
Wir raten aus Sicherheitsgründen davon ab, langfristig "allow-host-key-only-auth" zuzulassen, weil dabei ein potentieller Angreifer nur noch einen Wert korrekt raten muss anstelle von zweien um als host Zugriff auf das RPC-Interface zu bekommen.


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


Antworten