RobotMK und Update Plugin

Hallo,
ich stehe da vor einem kleinen Problem :
das Update Plugin läuft erst mal nur wenn die Python Runtime im Agenten enthalten ist,
RobotMK läuft nicht mit der Python Runtime, sondern nur mit einer kompletten Python Installation…

Was muss ich den in der kompletten Python Installation an Modulen für den Updater installieren, und was muss eventuell sonst noch angepasst werden ?

CheckMK 2.1.0p32
RobotMK 1.4.2
auf der betroffenen Maschine Python 3.11.4

Hi Andreas,

den Interpreter vom CMK-Agenten würde ich nicht mit libs aufbohren. Denn Du müsstest dazu nicht nur die Packages für Robotmk reinbasteln, sondern auch die für Deine RobotFramewor-Tests.

Besser per Regel dafür sorgen, dass der Interpreter auf diesem Host einfach nicht verwendet wird:

Für alle Plugins, die auf den CMK-Interpreter setzen, ist das kein Problem, weil die auch ohne weiteres mit “Deiner” Python-Installation laufen sollten.

Viele Grüße!
Simon

Hallo Simon,
das war die Idee, die installierte Python Umgebung für den Updater zu nutzen.
Dazu fehlen aber noch Module, die request z.B.
Soweit ich Python bis jetzt verstanden habe bräuchte ich sowas wie eine requirements.txt für den Updater :wink:
Reicht es die Imports aus der “cmk_update_agent.checkmk” aufzulösen und zu installieren ?

Hallo Andreas,

installier diese Module zunächst einfach über pip nach, um zu sehen ob es geht.
(Wenn Du neben robot framework auch noch selenium und andere libs installiert hat, ist die Wahrscheinlichkeit sehr groß, dass die vom Updater benötigten Module ohnehin schon huckepack mitgekommen sind.
Du könntest diese Module dann zusammen mit den von Robotmk benötigten in ein eigenes requirements.txt file aufnehmen. Das macht die INstallation ein wenig handlicher.

Die Module sind requests, PySocks und pyOpenSSL (Automatische Agenten-Updates - Agenten und Plugins automatisch verteilen)

vg
Simon

Hallo Simon,

klappt so leider nicht, die Registrierung will nicht :

C:\ProgramData\checkmk\agent\plugins>“c:\Program Files (x86)\checkmk\service\check_mk_agent.exe” updater register

    You must install Python Module to use the updater with parameters 'register'.
    To install Python Module you should use Bakery.

Nachtrag:
Registrierung mit dem integrierten Python geht, danach Update auf die Einstellungen für das auf dem Rechner isntallierte Python auch, ob die automatischen Updates dann auch laufen muss ich mal noch schauen…

Hi Andreas,

ich gehe davon aus, dass das nun ebenfalls nun funktionieren muss.
Ich habe das eben mit @PhilippL debugged und gesehen, dass ich hier selbst immer falsch gewickelt war: das Updater-Plugin (py) wird immer über den Agenten-Internen Interpreter aufgerufen, das ist im Binary check_mk_agent.exe so hinterlegt.

Mit dieser Einstellung
image
regelst Du ausschließlich, welcher Interpreter für Plugins verwendet wird.

Hallo Simon,

funktioniert.
Also :

  • Agent mit integriertem Python backen und installieren
  • Agent Updater und TLS registrieren
  • Agent umkonfigurieren auf “kein integriertes Python” und Agent backen
  • Update wird gemäß Regeln verteilt, RobotMK läuft

Hi Andreas,

warum backst Du 2x?
Es müsste auch so funktionieren, dass Du die Regel zum Ignorieren des Python-Interpreters gleich im ersten Schritt konfigurierst. Der updater nimmt ja immer den CMK-internen Interpreter, da über die .exe gestartet.
vg
Simon

Hi Simon,
ich hatte dann auch “Installation” auf never gesetzt, und dann kommt die Meldung das die Runtime benötigt wird.

Ich habe jetzt nicht alle Kombinationen von “Installation” und “Usage” ausprobiert, vielleicht geht das einfacher, mit zweimal backen hat es bei mir funktioniert :slight_smile: