Wie richte ich einen Linux-Server für den kopflosen Gebrauch ein?


7

Stellen Sie sich einen Headless-Server wie diesen vor: Eine typische x86-Box an einem Remotestandort, die Sie mit einem Standard-Ubuntu-Image remote initialisieren können. Nach der Initialisierung können Sie sich nur über ssh anmelden oder remote zurücksetzen, dh Sie können nicht auf das BIOS oder die Eingabeaufforderung des Boot-Managers zugreifen (z. B. Grub 1).

Möglicherweise ist eine Art KVM verfügbar, aber die Verwendung von KVM ist sehr teuer und Sie müssen sie stündlich buchen.

In diesem Szenario kann man bei Bootproblemen paranoid werden. Zum Beispiel:

  1. Was ist, wenn ein Kernel-Upgrade fehlschlägt?
  2. Was ist mit einer fsck-Eingabeaufforderung im frühen Startvorgang? Wahrscheinlich ist ssh noch nicht verfügbar ...

Gibt es andere Fallstricke, auf die Sie achten müssen?

Für Kernel-Upgrades konfiguriere ich grub (das Legacy) so, dass die menu.lstPräambel enthält

default saved
fallback 2  # counts from 0

und der erste Eintrag endet mit:

savedefault fallback

Der erste Grub-Eintrag ist der aktualisierte Kernel, und der dritte ist ein bekannter funktionierender. Siehe auch den Abschnitt zum Grub-Handbuch zum Fallback-Boot .

Ich habe das Startskript /etc/rc.local(auf einem Debian-ähnlichen System) dahingehend geändert, dass die Standardeinstellung bei einem erfolgreichen Start zurückgesetzt wird:

grub-set-default 0

Dieses Grub-Setup funktioniert, aber zB unter Ubuntu ist dies nicht die Standardeinstellung und man muss das menu.lstnach jedem Kernel-Update manuell anpassen .

Ich versorge

panic=60

als Kernel-Parameter, so dass root=das System im Falle eines falschen Parameters oder eines defekten Kernels im Fehlerfall automatisch neu startet.

Über das fsck-Problem bin ich mir nicht sicher, was der beste Weg ist. Auf Debian-ähnlichen Systemen können Sie einstellen

FSCKFIX=yes

in /etc/default/rcS, wodurch fsck standardmäßig angewiesen wird, automatisch zu reparieren.

Aber wenn die automatische Reparatur fehlschlägt, erhalte ich möglicherweise immer noch eine Eingabeaufforderung, auf die ich nicht remote zugreifen kann?

Alternativ könnte ich einfach die fsck-Prüfung über eine Null in der sechsten Spalte von deaktivieren /etc/fstab- im Falle eines fs-Fehlers würde ich dann einfach das System neu initialisieren und die Backups wiederherstellen - und so alle fsck-Probleme vermeiden?


Sehr gute Frage. Ein Bare-Metal-Server ohne Remote-Konsole oder eine teure ist ein großes Problem.
Rufo El Magufo

Antworten:


6

Im Ernst, wenn Ihr Anbieter keine kostenlose (oder zumindest billige) manuelle Unterstützung für Extremfälle anbietet, ist es Zeit zu wechseln. Ansonsten denke ich, dass Sie mit Ihrem Setup ziemlich in Ordnung sind.

Wenn Ihr System so kaputt ist, dass fsck es nicht reparieren kann, gibt es außer einer vollständigen Neuinstallation nicht viel anderes zu tun. Ich habe dies tatsächlich nicht gesehen, es sei denn, es gab einen schwerwiegenden Hardwarefehler.

Eine Sache zu beachten. Wählen Sie für eine Maschine wie diese eine stabile Distribution (Debian, RHEL, SLES) und aktualisieren Sie definitiv erst nach einer angemessen langen Zeit (neue Version für mindestens 6 Monate stabilisiert).


3

Sie sollten nach einem Hosting-Anbieter suchen, der Serial-over-SSH-Zugriff bereitstellt und Ihre Linux-Installation so konfiguriert, dass der (relevante) serielle Port als Konsole verwendet wird (wie Sie dies tun, hängt davon ab, ob das System eine Initialisierung vom Typ Upstart oder SysV verwendet ). Beachten Sie, dass ein BIOS verfügbar ist, das mit einer seriellen Schnittstelle und nicht mit dem eingebauten Bildschirmgerät kommuniziert. Aber normalerweise kommen sie nur auf teurer Hardware.

Sie müssen grub auch anweisen , die serielle Schnittstelle zu verwenden, wenn Sie sie über ein DTE steuern möchten.


2

Sie könnten sich überlegen, ob Sie eine benutzerdefinierte Initrd erstellen möchten, die Dropbear enthält (natürlich auf einem anderen Port ausgeführt), genügend Logik, um Ihr Netzwerk zum Laufen zu bringen, und möglicherweise eine Möglichkeit, bei Bedarf einige Wiederherstellungstools zu laden. Auf dieser Grundlage können Sie dann eine Wiederherstellungskernelkonfiguration erstellen, die mit Netzwerkfunktionen geladen wird und es Ihnen ermöglicht, sich einzuschalten, sodass Sie wieder auf das System zugreifen und eine Wiederherstellung versuchen können.


Ja, das klingt nach einem ziemlichen Projekt. Ich könnte mir sogar vorstellen, ein kleines Linux-System zu erstellen, das immer zuerst gestartet wird und sich wie ein Boot-Manager sshverhält (während es -access und bereitstellt screen). Dann könnte es den echten Kernel über Techniken wie en.wikipedia.org/wiki/Kexec booten . Oder man kann sich Server ansehen, die mit coreboot.org geliefert werden, anstatt ein beschissenes BIOS aus den 80ern. Aber sicher, all dies ist nichts, was Sie in wenigen Stunden zuverlässig einrichten und warten können - zu diesem Zeitpunkt mit einer stabilen Verteilung.
Maxschlepzig

Sieht so aus, als könnten Sie einen Teil der Mühe
sparen,
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.