Hi @rolandg ,
das Problem ist, dass mit ImageHorizon tatsächliche Screenshots der X11-Oberfläche gemacht werden
Jupp, das ist korrekt. Es braucht ein Anzeigedevice, von der die Library (genauer gesagt: pyautogui/openCV) einen Abzug macht und dort das Referenzbild sucht.
und die Robot-eigene Screenshot-Funktion, die auch Bilder von headless Browsern machen kann, hier nicht funktioniert.
Falls Du diese hier meinst - auch die hängt von einer Anzeigekonsole ab.
Was Du meinst, sind vermutlich die Screenshot-Funktionen der Selenium/Browser(playwright)-Libraries. Das sind keine “echten” Screenshots, sondern nur ein gerendertes Bild des Browsers. Das ist nicht exakt das, was man sehen wurde, aber kommt dem sehr nahe.
Zu Deinem Problem: das lässt sich denke ich lösen:
- Erstell eine Bakery-Regel und setze den Modus auf “external”. Damit wird Robotmk nicht mehr vom Agenten aus gestartet.
- Backen, deployen/updaten
- Das Starten von
robotmk-runner.py
ist jetzt Aufgabe eines cronjobs, den Du anlegen musst. Was der startet, kannst Du frei bestimmen, z.b.xvfb-run /usr/bin/python3 /usr/lib/checkmk-agent/bin/robotmk-runner.py
. - Der Runner liest aus der robotmk.yml-Datei, welche Suites ausgeführt werden sollen und startet sie in der XVFB-Session.
- Das
robotmk.py
-Plugin ist der “Kurzläufer” - der holt nur die JSON-Files mit den Ergebnissen ab und liefert sie agenten-kompatibel aus.
Untested
Ich hoffe, das hilft!
vg
Simon