Nach dem Begutachten der Hardware ist es nun an der Zeit, ein System zu installieren.
Für den ersten Step fällt meine Entscheidung auf ein Debian 11.
Allerdings müssen am Bootmedium einige Änderungen vorgenommen werden: Die Ausgabe auf die serielle Konsole muss aktiviert werden.
Dazu habe ich mit dem Tool „Rufus“ die Debian 11 Netinst-Cd auf einen USB-Stick geschrieben.
Auf diesem USB-Stick müssen nun im Verzeichnis „isolinux“ zwei Dateien bearbeitet werden: adtxt.cfg und isolinux.cfg.
Hier muss die Zeile mit vga=788 angepasst werden, bzw. der Eintrag für die serielle Konsole hinzugefügt werden.
Die Dateien müssen dann wie folgt aussehen.
adtxt.cfg:
1 2 3 4 5 6 7 8 9 |
label expert menu label E^xpert install kernel /install.amd/vmlinuz append priority=low vga=off console=ttyS0,115200n8 initrd=/install.amd/initrd.gz --- console=ttyS0,115200n8 include rqtxt.cfg label auto menu label ^Automated install kernel /install.amd/vmlinuz append auto=true priority=critical vga=788 initrd=/install.amd/initrd.gz --- quiet |
isolinux.cfg:
1 2 3 4 5 6 7 8 9 |
# D-I config version 2.0 # search path for the c32 support libraries (libcom32, libutil etc.) serial 0 115200 console 0 path include menu.cfg default vesamenu.c32 prompt 0 timeout 0 |
Zeit für den ersten Boot.
Zuerst muss noch das serielle Kabel von der Firewall mit dem Rechner verbunden werden.
Hier dann ein Terminal-Programm öffnen und als Eingang die serielle Schnittstelle auswählen.
Zwar ist das BIOS mit einem Passwort versehen, aber die Firewall bootet vom USB-Stick.
Und siehe da, das Installer-Menü von Debian wird angezeigt.
Auf die Installation von Debian gehe ich nicht näher ein, dazu gibt es genügend Anleitungen im Internet.
Nur vielleicht soviel: ich verwende „Expert Install“ unter „Advanced Options“.
Beim Installations-Punkt „Load installer components from install media“ wähle ich „openssh-client-udeb“ aus, damit ich ab diesem Schritt dann die Installation über eine ssh-Verbindung weiterführen kann.
Man kann es aber auch komplett über die serielle Konsole machen.
Den Punkt „Select and install software“ überspringe ich, somit kann ich sicher sein nur das nötigste installiert zu haben.
Nach einem Reboot ist das Debian entweder weiterhin über die serielle Konsole erreichbar, oder kann über die vergebene IP-Adresse via ssh erreicht werden.
Da das System recht nackt ist, installiere ich erstmal ein paar Sachen nach, bevor ich dann Docker installieren kann.
1 |
sudo apt install bash-completion vim curl wget screen |
Dann setze ich in „/etc/network/interfaces“ noch eine statische IP-Adresse für die erste Netzwerkkarte und die weiteren Netzwerkkarten werden ohne IP-Adresse konfiguriert.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface #allow-hotplug enp1s0 #iface enp1s0 inet dhcp auto enp1s0 iface enp1s0 inet static address 192.168.123.33 netmask 255.255.255.0 gateway 192.168.123.1 broadcast 192.168.123.255 dns-nameserver 192.168.123.1 # This is an autoconfigured IPv6 interface #iface enp1s0 inet6 auto# # Unmanaged Interfaces auto enp2s0 iface enp2s0 inet manual auto enp3s0 iface enp3s0 inet manual auto enp4s0 iface enp4s0 inet manual |
Nächster Schritt: Docker
Zeit für die Docker-Installation.
Ich installiere Docker direkt von der Docker-Seite nach der dortigen Beschreibung
1 |
curl -sSL https://get.docker.com | sh |
Und sollte mit etwa einer solchen Meldung enden
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Server: Docker Engine - Community Engine: Version: 20.10.12 API version: 1.41 (minimum version 1.12) Go version: go1.16.12 Git commit: 459d0df Built: Mon Dec 13 11:43:56 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.13 GitCommit: 9cc61520f4cd876b86e77edfeb88fbcd536d1f9d runc: Version: 1.0.3 GitCommit: v1.0.3-0-gf46b6ba docker-init: Version: 0.19.0 GitCommit: de40ad0 ================================================================================ To run Docker as a non-privileged user, consider setting up the Docker daemon in rootless mode for your user: dockerd-rootless-setuptool.sh install Visit https://docs.docker.com/go/rootless/ to learn about rootless mode. To run the Docker daemon as a fully privileged service, but granting non-root users access, refer to https://docs.docker.com/go/daemon-access/ WARNING: Access to the remote API on a privileged Docker daemon is equivalent to root access on the host. Refer to the 'Docker daemon attack surface' documentation for details: https://docs.docker.com/go/attack-surface/ ================================================================================ |
Docker-Compose installation
Danach installiere ich noch Docker-Compose
1 2 |
sudo apt install libffi-dev libssl-dev python3-dev python3 python3-pip sudo pip3 install docker-compose |
Als nächstes muss ich Docker noch als Dienst aktivieren ….
1 |
sudo systemctl enable docker |
… und ich füge meinen aktuellen User der Gruppe „docker“ hinzu, damit ich nicht immer mit „sudo“ arbeiten muss.
1 |
sudo usermod -aG docker ${USER} |
Und damit wäre das System bereit für die ersten Tests mit Docker.