Seite 1 von 2

[Gelöst] Server Anfrage an opsi-client

Verfasst: 12 Jun 2019, 19:48
von CKoehler
Moin,

ich versuche gerade unserer automatischen Build-Prozess von localboot-Produkten zu erweitern/verbessern.
Gibt es eine Möglichkeit, vom Server aus (opsi-admin?) eine Anfrage an den opsi-client zu senden, ob dieser gerade eine Aktion durchführt; Sprich, die Werte die auf der infopage des Clients stehen, vom Server abfragen?

Gruß
Christopher

Re: Server Anfrage an opsi-client

Verfasst: 17 Jun 2019, 14:41
von n.wenselowski
Hi,

du kannst isEventRunning nutzen, um abzufragen ob gerade ein bestimmtes Event (bspw. gui_startup) läuft.
Ungefähr so (nicht getestet...):

Code: Alles auswählen

opsi-admin method hostControl_opsiclientdRpc isEventRunning gui_startup client.fqdn.here

Gruß

Niko

Re: Server Anfrage an opsi-client

Verfasst: 17 Jun 2019, 15:07
von CKoehler
Hey Niko,

danke für die Rückmeldung. Meine Tests waren leider nicht sehr erfolgreich. Ich bekomme zwar ein Ergebnis, jedoch nicht das korrekte.

Code: Alles auswählen

opsi-admin method hostControl_opsiclientdRpc isEventRunning on_demand it-010.fqdn
gibt mir die folgende Rückmeldung

Code: Alles auswählen

Password:
[3] Failed to read session file '/home/adminuser/.opsi.org/session': [Errno 13] Permission denied: u'/home/adminuser/.opsi.org/session' (opsi-admin|300)
[3] Failed to write session file '/home/adminuser/.opsi.org/session': [Errno 13] Permission denied: u'/home/adminuser/.opsi.org/session' (opsi-admin|320)
[3] Failed to read history file u'/home/adminuser/.opsi.org/history': [Errno 13] Permission denied: u'/home/adminuser/.opsi.org/history' (opsi-admin|474)
{
    "it-010.fqdn": {
        "result": false,
        "error": null
    }
}
[3] Failed to write history file u'/home/adminuser/.opsi.org/history': [Errno 13] Permission denied: u'/home/adminuser/.opsi.org/history' (opsi-admin|559)
Wenn ich jetzt die Fehlermeldungen einfach ignoriere: Das Ergebnis "result": false ist immer das gleiche, auch wenn ich auf der infopage des clients sehe, dass das Event gerade läuft.

Hast du eine weitere Idee, die ich austesten kann?

Re: Server Anfrage an opsi-client

Verfasst: 17 Jun 2019, 15:23
von n.wenselowski
Hi,

so als Idee: ist während deinem Test ein User angemeldet?



Gruß

Niko

Re: Server Anfrage an opsi-client

Verfasst: 17 Jun 2019, 15:39
von CKoehler
n.wenselowski hat geschrieben:so als Idee: ist während deinem Test ein User angemeldet?
Ja. Ich habe es gerade auch ohne angemeldeten Benutzer versucht. Gleiches Ergebnis.
Sind alles Windows 10 Clients.

Re: Server Anfrage an opsi-client

Verfasst: 17 Jun 2019, 15:45
von n.wenselowski
Versuch mal als event on_demand{user_logged_in}.

Bringt das Besserung?

Re: Server Anfrage an opsi-client

Verfasst: 18 Jun 2019, 10:47
von CKoehler
Funktioniert:

Code: Alles auswählen

opsi-admin method hostControl_opsiclientdRpc isEventRunning on_demand{user_logged_in} it-010.FQDN
Ausgabe:

Code: Alles auswählen

Password:
[3] Failed to read session file '/home/adminuser/.opsi.org/session': [Errno 13] Permission denied: u'/home/adminuser/.opsi.org/session' (opsi-admin|300)
[3] Failed to write session file '/home/adminuser/.opsi.org/session': [Errno 13] Permission denied: u'/home/adminuser/.opsi.org/session' (opsi-admin|320)
[3] Failed to read history file u'/home/adminuser/.opsi.org/history': [Errno 13] Permission denied: u'/home/adminuser/.opsi.org/history' (opsi-admin|474)
{
    "it-010.FQDN": {
        "result": true,
        "error": null
    }
}
[3] Failed to write history file u'/home/adminuser/.opsi.org/history': [Errno 13] Permission denied: u'/home/adminuser/.opsi.org/history' (opsi-admin|559)
Wie bekomme ich es nun hin, dass ich das Passwort über das Skript mitgeben kann und die Fehlermeldungen nicht kommen bzw. unterdrücke?
Den Rest kann ich ja dann irgendwie auswerten.

Re: Server Anfrage an opsi-client

Verfasst: 18 Jun 2019, 10:51
von CKoehler
CKoehler hat geschrieben: Wie bekomme ich es nun hin, dass ich das Passwort über das Skript mitgeben kann und die Fehlermeldungen nicht kommen bzw. unterdrücke?
Okay. Die Passwortabfrage habe ich umgehen können. Bleiben aber immernoch ein paar Fehlermeldungen:

Code: Alles auswählen

opsi-admin -d method hostControl_opsiclientdRpc isEventRunning on_demand{user_logged_in} it-010.FQDN

[3] Failed to read history file u'/home/adminuser/.opsi.org/history': [Errno 13] Permission denied: u'/home/adminuser/.opsi.org/history' (opsi-admin|474)
{
    "it-010.FQDN": {
        "result": false,
        "error": null
    }
}
[3] Failed to write history file u'/home/adminuser/.opsi.org/history': [Errno 13] Permission denied: u'/home/adminuser/.opsi.org/history' (opsi-admin|559)

Re: Server Anfrage an opsi-client

Verfasst: 18 Jun 2019, 18:40
von CKoehler
Okay. Ich komme etwas weiter.
Die Fehlermeldungen lassen sich mit sudo einfach unterdrücken. Ich habe nun versucht das ganze in ein shell-script zu verpacken:

Code: Alles auswählen

#!/bin/bash
# $1 -> productid
# $2 -> client fqdn
# $3 -> event action
echo "Param1: $1"
echo "Param2: $2"
echo "Param3: $3"
if [ $# -gt 2 ]; then
 opsi-admin -d method setProductActionRequest $1 $2 $3
 opsi-admin -d method hostControlSafe_fireEvent "on_demand" $2
 var=$(opsi-admin -d method hostControlSafe_opsiclientdRpc "isEventRunning" "on_demand{user_logged_in}" "$2" | grep result)
 sleep 10s
 while [ "$var" == "\"result\": true," ]
 do
  sleep 10s
  var=$(opsi-admin -d method hostControlSafe_opsiclientdRpc "isEventRunning" "on_demand{user_logged_in}" "$2" | grep result)
 done
else
 echo "Error: Not enough parameter defined"
 exit 1
fi
Aber die Ausgabe bringt nur folgendes:

Code: Alles auswählen

Param1: PRODUCTID
Param2: opsi-deploy-03.fqdn
Param3: setup
{
    "opsi-deploy-03.fqdn": {
        "result": null,
        "error": null
    }
}
Wenn ich den command aus dem script manuell ausführe kommt das richtige Ergebnis:

Code: Alles auswählen

{
    "opsi-deploy-03.fqdn": {
        "result": false,
        "error": null
    }
}
Falls es aufgefallen ist: Es macht keinen Unterschied ob ich hostControlSafe_opsiclientdRpc oder hostControl_opsiclientdRpc nutze.
Auch das Script habe ich mit sudo ausgeführt.

Habt ihr noch Ideen, wieso dort immer null zurück kommt?

Gelöst: Server Anfrage an opsi-client

Verfasst: 19 Jun 2019, 09:32
von CKoehler
Nevermind... Mein Fehler... Die "falsche" Rückgabe kam von einem anderen Command. Vielleicht lags ja an der Hitze hier im Büro. :D

Mein Script funktioniert also grundlegend wie ich es mir vorstelle. Kann ich nun also weiter rumprobieren. Danke für deine Unterstützung Niko.