Server-Basissystem
Allgemein
Das Ziel dieser Anleitung ist ein Ubuntu-Minimal-System mit folgenden Eigenschaften: Das System hat zwei System-Festplatten. Fällt eine der beiden Festplatten aus, so funktioniert das System trotzdem ohne Beeinträchtigung weiter. Dies umfasst auch den Neustart. Ein Hot-Swap der Festplatten ist ebenfalls möglich.
Es wurde keine Möglichkeit gefunden unter Ubuntu zwei EFI-Partionen synchron zu halten. Aus diesem Grund muss das System mit BIOS oder UEFI-Legacy gebootet werden.
Als Partitionstabelle wurde GPT gewählt. Für die zweite Stufe von GRUB braucht man dann eine zusätzliche kleine Partition vom Typ "BIOS boot". Diese muss auf beiden Festplatten angelegt werden. Es wird eine Größe von 1MB empfohlen. Ein Dateisystem darf in dieser Partition nicht angelegt werden. Die Partion wird unter Ubuntu bei Installation und Update des Bootloaders automatisch aktualisiert und synchron gehalten.
Die zweite Partition umfasst jeweils den Rest der Festplatte. Sie sollte den Typ "Linux LVM" haben. Die beiden großen Partition werden in einer LVM-Volume-Group zusammengefasst. In der Volume-Group wird dann ein Logical-Volume vom Typ raid1 angelegt. Das Logical-Volume muss nicht sehr groß sein, da nur ein Minimal-System installiert werden soll. Sollte der Platz knapp werden, so kann man das Logical-Volume und das enthaltene Dateisystem bis zu der Größe der kleineren Festplatte erweitern.
Als Dateisystem für das Logical-Volume wird BTRFS verwendet. Dies gestattet es, vor umfangreicheren Änderungen am Betriebsystem, einen Snapshot anzulegen. In den Dateisystem werden die drei Subvolumes @, @home und @snapshot angelegt, welche an /, /home und /snapshot eingehängt werden.
Zum Überwachen der Festplatten wird das Paket smartmontools installiert und eingerichtet. Zum Versenden von Systemmails wird das Paket msmtp-mta verwendet.
Das System wird nicht von einem Installationsmedium sondern mit debootstrap installiert. Deshalb kann zur Installation irgendein System verwendet werden, das mit den notwendigen Tools ausgestattet ist. Am einfachsten ist es den Server mit dem Live-System von einem "Ubuntu Desktop 18.04"-Stick zu booten. So kann man einerseits beim Systemstart das Tastaturlayout wählen und andererseits diese Anleitung in einem Browser öffnen.
Voraussetzungen
Server mit 2 Systemfestplatten SSD im Wechselrahmen
USB Stick mit Ubuntu 18.04 Desktop zum Installieren
Netzwerk mit DHCP und Internetverbindung
Die Dateien basy-bootstrap, basy-setup und basy-config-example aus dem GitHub Repository [[1]]
Installation
Der Server wird von einem "Ubuntu Desktop 18.04"-Stick gebootet. Dabei ist bei einem UEFI-System darauf zu achten, das der Server im Legacy-Modus gestartet wird. Man wählt die Sprache und das man Ubuntu zunächst ausprobieren möchte. Nach dem der Ubuntu-Desktop fertig gestartet ist öffnet man ein Shell und holt sich mit sudo bash Superuser-Rechte. Nun können die Skripte aus dem Git-Repository abgerufen werden.
apt install git git clone https://github.com/heiko-schlabach/Server-Basissystem cd Server-Basissystem
Zunächst muss eine Konfigurationsdatei für das Skript basy-bootstrap angelegt werden:
cp basy-config-example basy-config nano basy-config
Nun kann das Skript basy-bootstrap aufgerufen werden:
./basy-bootstrap basy-config
Während der Abarbeitung wird der Benutzer nach dem root-Passwort für das System gefragt. Anschliessend kann das System neu gestartet werden.