<
Proxmox STRATO Server
01 Vorbereitung Server und VM 02 Netzwerk und SSH 03 Firewall 04 Serielle Konsole 05 Installation Kleine Themen
>

Proxmox Server auf einem STRATO Server

Serielle Konsole konfigurieren

In diesem Kapitel geht es um die serielle Konsole und ihrer Konfiguration für den Proxmox Server. Das ist ein besonderes Kapitel, da es speziell zu dem STRATO Server ist. Wie auf der Intro Seite erklärt ist die serielle Konsole eine spezielle Möglichkeit Zugriff auf den Server zu haben, unabhängig von Netzwerk und Diensten. Es ist eine (alte) Methode einen Bildschirm (Ersatz-) Zugriff zu haben. Die Konsole existiert so nur bei dem STRATO Server und ist nur per Befehl über den Server Login bei STRATO aktivierbar. In den Kapiteln zuvor wurde für die Image Vorbereitung ein Proxmox zu Hause in einer VM (VirtualBox) installiert. In VirtualBox ist weder ein Bildschirm Ersatz durch eine serielle Konsole vorgesehen, noch notwendig. Den bei dieser VM hat man einen "echten" virtuellen Bildschirm, an dm man Eingaben machen kann und wo man sogar grafische Oberflächen sehen kann. Soll der Proxmox in einem der folgenden Kapitel jedoch von der VM zu Hause auf den Server bei STRATO verschoben werden, soll dort die serielle Schnittstelle auch funktionieren. In diesem Kapitel wird die Einstellung gezeigt und wie man es zu Hause unter VirtualBox testweise verwenden kann.

Warum die serielle Konsole einrichten

Warum sollte man die serielle Konsole für einen Proxmox Server aktivieren, weil er auf einem Server bei STRATO läuft? Warum sollte man die Aufwendungen machen, bei einer VirtualBox VM, die keine serielle Schnittstelle als Bildschirmersatz anbietet und braucht, dies Einzurichten und zu verwenden.
Zu Erinnerung: Der Server bei STRATO bietet uns keinen Bildschirm an oder andere Remote-Steuerungsmöglichkeiten die von Außen am Server angebunden sind. Es geht hier auch nicht um das permanente Verwenden. Die serielle Konsole wird tatsächlich auch nicht die ganze Zeit verwendet. Normalerweise würde man sich per SSH verbinden und ggf. auch die Weboberfläche aufrufen. In beiden Fällen hat man also eine bessere Konsole. Abgesehen davon zeigt einem Proxmox über die Weboberfläche wichtige Informationen an und wird über diese verwaltet. Auf der lokalen Bildschirmausgabe (oder später der seriellen Ausgabe) zeigt der Proxmox nicht viel an. Man kann ihn dort steuern, wird es so aber nicht wollen. Weder würde man an einen Server hingehen und ihn mit echter Tastatur bedienen, noch möchte man das unbedingt über die serielle Konsole machen.
Aber die serielle Konsole ist kein Zusatz Feature, wie ein kostenloses SSL Zertifikat. Es ist ein Rettungsring, wenn nichts mehr ordentlich Funktioniert. Hat man IP Einstellungen gemacht und dabei einen Fehler gemacht, kann man sich nicht mehr per SSH anmelden. Man muss nicht einmal etwas verstellt haben. Was ist, wenn man glaubt der Server startet nicht, weil man sich nach Neustart immer noch nicht verbinden kann. Die serielle Konsole ist unabhängig und man kann den gemieteten Server auch in solchen Fällen bedienen.
Daher sollte diese Funktion nicht vergessen werden und am besten bereits vor Installation auf dem Server bei STRATO eingestellt werden. Grundsätzlich funktionieren tut alles, weil Proxmox nur ein Debian Linux ist.

Serielle Konsole aktivieren

Um die serielle Konsole nun aktivieren und Testen zu können, muss im Proxmox nicht einmal etwas nachträglich installiert werden. Alles was man dafür braucht, hat man bereits. Die Ausgabe von Programmausgaben und die Interaktion über serielle Schnittstelle ist in Linux ein alter Hut. Die Funktion kommt über den Linux Kernel, den jedes Linux hat. Auch im Proxmox Kernel sind diese Funktionen enthalten. Man muss dem Kernel lediglich sagen, dass er es einschalten soll und auf welche Schnittstelle. Ein paar Einstellungen braucht es (wie üblich bei seriellen Schnittstellen), die liste ich unten auf. Ferner kann der Bootmanager Grub die Unterstützung für serielle Schnittstellen. Auch dieser ist wieder Grundbestandteil des Systems und auch hier muss man lediglich die Einstellungen aktivieren.
Folgendes muss man über die serielle Schnittstelle bei STRATO wissen:

Setzen der Einstellungen im Grub zum aktivieren

Die Einstellungen werden in eine Konfigurationsdatei vorgenommen, die den Grub Bootmanager steuert. Dem Kernel werden die Informationen für die Nutzung der seriellen Schnittstelle als sogenannte Kernelparameter mitgeteilt. Dies übernimmt der Grub Bootmanager, wenn das System gestartet wird. Daher werden die Kernelparameter in der Konfigurationsdatei für den Grub angelegt. Dort wird auch eine Einstellung hinterlegt, die den Grub selbst in die Lage versetzt, die serielle Schnittstelle zu verwenden.
Die Konfigurationsdatei ist unter "/etc/default/grub" zu finden. Relativ weit oben findet sich die Variablen Zuweisung zu GRUB_CMDLINE_LINUX_DEFAULT=. In dieser Zuweisung steht üblicherweise drin "quiet splash". Diese Zuweisung muss man lediglich ergänzen (Reihenfolge egal) um console=tty0 console=ttyS0,57600.
Die Anweisung GRUB_TERMINAL=console steht schon auskommentiert (durch die "#") da. Die "#" entfernt und darunter eine neue Anweisung GRUB_SERIAL_COMMAND="serial --speed=57600 --unit=0 --word=8 --parity=no --stop=1" eingefügt und die Änderungen gespeichert. Nun muss ein Befehl noch ausgeführt werden. Der Befehl update-grub generiert die Anweisungen für den Grub Bootmanager neu, die u.a auch die Kernelvariablen enthalten. Der Proxmox hat eine Besonderheit: Er besitzt zwei Bootpartitionen. Die eine ist für die alte Boot Variante (Legacy-Mode) und die andere für den moderneren Modus (UEFI-Mode). Die Änderungen müssen zwar auf beiden Partitionen eingespielt werden, jedoch sorgt das "proxmox-boot-tool" automatisch dafür. Es wird auch automatisch mit ausgeführt, wenn man o.g Befehl auslöst.
Ist der Befehl erfolgreich fertig ausgeführt geworden, ist die Konsole beim nächsten Start der VM / des Servers aktiv. Für den Test in VirtualBox sind noch ein paar Dinge notwendig.

Temporäres ausschalten der Funktion

Man kann die Konsole auch einfach wieder deaktivieren. Es ist zu Empfehlen, dies zu tun, während man man der VM zu Hause noch arbeitet. Nachdem man mit dem Test (siehe folgend) fertig ist, kann man in VirtualBox die Einstellungen an der VirtualBox VM einfach deaktivieren. Dies sollte man ganz zuletzt machen. Vorher sollte man in der gestarteten VM ein weiteres mal den Editor bemühen, um die Datei "/etc/default/grub" erneut zu bearbeiten. Viel zu ändern hat man nicht.
Die Variablenzuweisung "GRUB_CMDLINE_LINUX_DEFAULT" muss wieder reduziert werden. Hier empfehle ich einfach die Zeile durch kopieren zu verdoppeln. Man kommentiert die Zeile mit den Kernelparametern für die Konsole einmal aus (durch eine "#" am Anfang) und in der kopierten Zeile entfernt man die Parameter aus der Zuweisung. Wird der Server später auf den STRATO Server verschoben, kommentiert man dann genau umgekehrt und die Konsole ist wieder aktiv.
Die beiden Zuweisungszeilen, die man vorher hinzugefügt hatte, "GRUB_TERMINAL" und "GRUB_SERIAL_COMMAND" kommentiert man lediglich aus.
Danach speichert man wieder die Datei und führt oben genanntes Kommando "update-grub" aus. Ist der Befehl fertig, kann die VM neugestartet bzw. für die Rekonfiguration in VirtualBox heruntergefahren werden. Beim nächsten Start, ist die Konsole wieder deaktiviert.

Testen der Konsole auf der VM zu Hause

Um die Einstellungen testen zu können, bedarf es einiger Tricks. Denn es ist ja das Problem, dass die VM eigentlich diese Funktion nicht vorsieht und der Proxmox nicht mal eben zum Testen hochgeladen werden soll. VirtualBox unterstützt serielle Schnittstellen für virtuelle Maschinen. Dabei können verschiedene Verbindungen auf dem Host Rechner verwendet werden, um den virtuellen Anschluss zu verbinden. Dabei gibt es die Möglichkeit eine Schnittstelle des Hostrechners zu verwenden. Auf einem Linux Host liegt die dafür notwendige Datei in der Regel vor: "/dev/ttyS0". Solche Schnittstellen müssen (wie unter Windows auch) real am Computer existieren. Theoretisch geht ein USB-Serieller Anschluss. Aber der muss dann auch von außen ausgelesen werden. Möchte man Eingabe tätigen, müssen die auch daher kommen. Aber nicht jeder hat diese Möglichkeit. Die Gerätedatei unter Linux trotzdem verwenden geht auch nicht, da wenn man versucht sich mit dieser zu Verbinden von einem Tool auf dem Host, diese nicht mit der VM verbunden wird.
Um Eingabe und Ausgabe testen zu können, funktioniert nur die Wahl der "Host-Pipe" Einstellung. Man setzt die Einstellung mit einer Pfadeingabe für eine Pipe Datei (VM muss ausgeschaltet sein). Im Bild habe ich für meinen Linux Host einen Pfad unter "/tmp" gewählt. Fährt man mit der Maus über diese Texteingabe, bekommt man eine Info, wie dort Eintragungen gemacht werden müssen, unter anderem Host-Pipe unter Windows. Mit diesen Einstellungen speichert man.

Testen der seriellen Konsole mit VirtualBox (Linux)

Dieser Test Ansatz funktioniert nur unter einem Linux als Host System für den Proxmox. Hier wird das Linux Tool "socat" benötigt. Es soll wohl auch einen unoffiziellen Port für Windows geben, dieser ist hier aber nicht getestet.
Mit dem "socat" Tool ist es möglich das emulierte serielle Terminal von VirtualBox zu verwenden (zumindest ist es mir nur mit diesem Tool gelungen). Das Tool war auf dem Hostrechner, wo ich den Proxmox vorbereitet habe, nicht installiert. Mittels "apt install socat" (Debian*) habe ich es ganz schnell nachinstalliert.
Um nun einen möglichst genauen Test zu erfahren, inklusive dem Bootmanager, ist es nötig mit der VM zu tricksen. Bevor die VM nicht gestartet wurde, existiert die emulierte serielle Schnittstelle noch nicht. Solange kann man den Zugriff mit socat nicht vorbereiten. Drückt man im VirtualBox Manager auf den Startbefehl für die VM, kommt man relativ schnell zum Bootloader. Doch einen kurzen Moment zuvor gibt es, wo die VM einen Startbildschirm (VirtualBox Logo der Version) anzeigt. Das ist der "BIOS-Bildschirm" der VM.
Man startet die VM und wählt schnell im Menü "Maschine" > "Pause" aus, sodass diese im Startbildschirm angekommen eingefroren wird. Jetzt kann man "socat" hinterher starten. Mit dem Befehlt socat unix-connect:/tmp/ttyVBOX0 -,b57600 (Leerzeichensetzung beabsichtigt) öffnet man das Terminal. ACHTUNG: "socat" leitet innerhalb des Fensters alle Tastatureingaben weiter an die emulierte serielle Schnittstelle. Ist socat am laufen, wählt man im Menü der VM wieder die gleichen Menüpunkte aus, um die VM weiter laufen zu lassen. Nun sollte der Grub-Bootmanager auf der "socat" Ausgabe erscheinen. Man kann dann, wie später auch, mit den Pfeiltasten andere Menüeinträge wählen. Startet das Proxmox OS, erscheinen auf der Ausgabe von "socat" zunächst viele Textausgaben zum Start von Linux Kernel und Diensten, bis zum Schluss eine Anmeldung erlaubt wird. Hier kann sich im Prinzip durch Eingabe von Nutzer "root" und dessen Passwort angemeldet werden (hat nichts mit SSH zu tun).
Ist dieser Test erfolgreich funktioniert die serielle Konsole und wird später auf dem echten Server auch funktionieren. An dieser stelle würde ich wie oben erklärt die Serielle wieder deaktivieren in Proxmox und vor allem in VirtualBox.