Subsections of Server & Hardware

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/


Supermicro Serial over LAN (SOL)

Es gibt Fälle in denen gerade keine Desktop GUI bereit steht, oder einem die Java Anwendung zu unbequem ist um die Bildschirmausgabe (noVNC) zu öffnen.
Dennoch ist es möglich den Bootprozess zu begleiten, oder sogar das BIOS aufzurufen.
Hierfür stellt Supermicro eine serielle Schnittstelle bereit, die über das Netzwerk erreicht werden kann (Serial over LAN).

Am einfachsten geschieht der Zugriff über IPMItool. Die Parameter sollten wie folgt angepasst werden:

Parameter Verwendung
-U Username
-P Password
-H IP oder Hostname der IPMI Schnittstelle des Remote-Hosts
-I Interface, im Regelfall nicht notwendig, aber bei älteren IPMItool Versionen angeben
Beispiel
ipmitool -I lanplus -H $IP_ODER_HOSTNAME -U ADMIN -P ADMIN sol activate

#verlassen der Konsole mit folgender Kombination:
<Enter>
~~

Die Tilde schreibt sich mit "ALT GR" + "+" (neben Enter)

Konfiguration Grub für Linux-Konsole

Um die Konsole von Linux verwenden zu lassen, ist es eventuell nötig dem Kernel entsprechende Parameter mitzuteilen.
Dies kann im Grub konfiguriert werden. Ein Beispiel zu Ubuntu (ggf. auch auf andere Distributionen übertragbar):

# File: /etc/default/grub

# Ausgabe auf Bildschirm und serieller Schnittstelle
GRUB_TERMINAL="console serial"

# entweder ergänzen:
GRUB_CMDLINE_LINUX="... serial=ttyS0 console=ttyS0,115200n8

# oder neuen Bereich beginnen:
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX serial=ttyS0 console=ttyS0,115200n8"

Danach muss die GRUB-Konfiguration erstellt werden:

grub-mkconfig -o /boot/grub/grub.cfg
update-grub

Nach einem Reboot dürften Bootprozess, Grub-Menü und auch die Konsole des Betriebssystems mittels SOL anzusprechen sein.

https://wiki.ubuntuusers.de/GRUB_2/Konfiguration/