ich bin gerade dabei eine abgespeckte Variante eines OPSI Clients in Python zu programmieren der lediglich ein paar kleine Grundfunktionalitäten enthalten soll (z.b. eine Nachricht an den Client senden oder grundlegende Systeminformationen abfragen).
Das Abfragen der API vom Client zum Server funktioniert soweit ganz gut. Ich kann also mittels Python z.B. prüfen ob ich authentifiziert bin oder nicht. Der umgekehrte Weg macht mir allerdings noch Probleme.
Ich habe den gewünschten Client manuell über das Webinterface mit entsprechender IP und Hostnamen angelegt und mir auf diesem Client einen SSL Socket auf Port 4441 geöffnet. Wenn ich nun den Client im Webinterface auswähle und versuche eine Nachricht zu senden, sehe ich auch problemlos den RPC-Call den der Server an den Client sendet.
Die große Frage ist nun wie antworte ich darauf damit der OPSI Server zufrieden ist. Alles was ich bisher versucht habe endet damit das OPSI nach 20 Sekunden einen Timeout anzeigt, weil er keine passende Rückmeldung bekommen hat.b'POST /opsiclientd HTTP/1.1\r\nHost: <IP>:4441\r\nAccept-Encoding: identity\r\ncontent-type: application/json-rpc\r\ncontent-length: 53\r\nAuthorization: Basic OjFjZDkxODYwMDRmZTM4YTUzZWYzMjkwYzhlMWEyMjQy\r\n\r\n'
b'{"params": ["Test123"], "id": 1, "method": "showPopup"}'
Nach den Logeinträgen und Wireshark Sniffs zu schlussfolgern, braucht OPSI wohl eine SessionID welche wohl vom Server generiert wird und dann bei der Antwort mitgegeben werden muss. Gibt es irgendwie die Möglichkeit diese SessionID zu erstellen oder abzurufen ?
Ich hoffe ihr könnt mir helfen[4] [Jul 10 15:20:10] Failed to read opsi modules file '/etc/opsi/modules': [Errno 2] No such file or directory: u'/etc/opsi/modules' (Backend.py|365)
[5] [Jul 10 15:20:10] New session created (session.py|75)
[5] [Jul 10 15:20:10] Application 'opsi config editor 4.0.4.1.3' on client '<IP>' supplied non existing session id: RsNKWbQG6G92ZXQnyHSuUroehbulroVn (Worker.py|392)
[5] [Jul 10 15:20:10] Authorization request from <USER>@<IP> (application: opsi config editor 4.0.4.1.3) (workers.py|192)
[4] [Jul 10 15:20:10] Failed to read opsi modules file '/etc/opsi/modules': [Errno 2] No such file or directory: u'/etc/opsi/modules' (Backend.py|365)
[4] [Jul 10 15:20:10] Failed to read opsi modules file '/etc/opsi/modules': [Errno 2] No such file or directory: u'/etc/opsi/modules' (Backend.py|365)
[5] [Jul 10 15:20:10] Disabling mysql backend and license management module: no customer in modules file (MySQL.py|435)
[5] [Jul 10 15:20:10] -----> Executing: hostControl_showPopup(u'Test123', [u'<HOSTNAME>']) (JsonRpc.py|125)
[3] [Jul 10 15:20:30] Rpc to host <HOSTNAME> (address: <IP>) timed out after 20.03 seconds, terminating (HostControl.py|233)

Schon mal vielen Dank im Voraus