Supermicro noVNC ohne Browser (CURL)

Nicht immer ist ein Browser in greifbarer Nähe, oder es soll kurz schnell gehen. Um auf die noVNC Schnittstelle von Supermicro Mainboards zugreifen zu können ist die Verbindung mittels IPMI Viewer, oder JNLP (Java Network Launch Protocol) möglich.

Ist der Host nicht im selben Netzwerk wie der lokale PC, funktioniert der IPMI Viewer nicht zwingend. Dies kann zum Beispiel beim SSHuttle der Fall sein. In diesem Fall erreicht man zwar das Webinterface der IPMI-Schnittstelle, muss sich dann mittels Browser einloggen und die JNLP Datei herunterladen. Im Anschluss kann diese dann ausgeführt werden…

Soll es schneller gehen bietet sich der Download der JNLP-Datei auch mittels curl an:

IPMIHOST=YOURHOST
USER=YOURUSER
PASS=YOURPASS
COOKIE=$(mktemp)
JNLP=$(mktemp)
curl -q -s -k -c "${COOKIE}" -X POST --data "name=${USER}&pwd=${PASS}" "https://${IPMIHOST}/cgi/login.cgi" >/dev/null
curl -q -s -k -b "${COOKIE}" -o "${JNLP}" -X GET "https://${IPMIHOST}/cgi/url_redirect.cgi?url_name=ikvm&url_type=jwsk"
javaws "${JNLP}"

Zur Erklärung der “Magie”:

  • die Variablen werden gesetzt und zwei temporäre Dateien erzeugt ($COOKIE & $JWSK)
  • mittels HTTP POST Request wird sich eingeloggt (Daten kommen aus den Variablen $USER & $PASS). Der Inhalt des Cookies wird in die Temp-Datei ($COOKIE) geschrieben
  • mit dem Cookie wird die URL aufgerufen, die eine gewünschte JNLP-Datei zurückliefert. Der Inhalt wird in die Datei ($JNLP) gespeichert.
  • die JNLP Datei wird mittels Java-Webstart (javaws) ausgeführt

https://www.truenas.com/community/threads/script-to-launch-supermicro-ipmi-viewer-from-shell.45275/