Raspberry Pi: Die Flotte Zukunftssicher machen - Heimdall

  Actionschnitzel   Lesezeit: 11 Minuten  🗪 7 Kommentare Auf Mastodon ansehen

Ein Erfahrungsbericht über den Umstieg von PiOS Lite auf Ubuntu Server und eine einfache Anleitung zur Nutzung von Docker.

raspberry pi: die flotte zukunftssicher machen - heimdall

Seit der Ankündigung der Mini-Serie ist nun doch etwas Zeit verstrichen. Manchmal kommt das Leben einfach dazwischen. Um das Kern-Thema nochmal aufgreifen:

Es geht darum, dass in meinem Server-Rack vier Raspberry Pis werkeln, die alle kleine Aufgaben erfüllen, welche den IT-Alltag angenehmer machen. Da Raspberry Pi OS mit jeder neuen Version auch neu geflasht werden muss, habe ich mich entschieden auf Ubuntu Server 24.04 mit Pro-Abo umzusteigen, und somit 10-12 Jahre Ruhe habe.

Heimdall

Vieles findet heut zutage im Browser statt, um so wichtiger ist es, schnellen Zugriff auf bestimmte Inhalte zu bekommen. Die perfekte Lösung für mich ist das Heimdall-Dashboard. Hierüber lassen sich Websites in Kachel auflisten und sogar Status-Meldungen von Server-Applikationen auslesen.

https://heimdall.site/

Die Einstellungen können über das Menü exportiert und somit gesichert werden. In meinem Fall sieht das Endprodukt so aus. 

Flash

Um den Umstieg auf Ubuntu Server zu gewährleisten, muss das OS auf eine microSD geflasht werden. Der Raspberry-Pi-Imager ist ein tolles Tool, welches genau dies bewerkstelligen kann.

Einrichten

Da das Server-Rack auf einem Schrank steht und ich ungern auf einem Stuhl stehen möchte - in der linken Hand ein Service-Monitor und in der rechten eine Tastatur - um Ubuntu einzurichten, findet das initiale Setup am Raspberry Pi 400 statt. 

Es ist wohl kein Geheimnis, dass man sich beim ersten Login mit dem User: ubuntu und dem Passwort: ubuntu anmelden muss und dann aufgefordert wird ein neues PW zu vergeben.

Außerdem sollte ein neuer User mit erhöhten Rechten erstellt werden:

sudo adduser XY

sudo adduser XY sudo

Natürlich darf eine Aktualisierung auch nicht fehlen:

sudo apt update && sudo apt upgrade && sudo reboot

Es schont auch die Nerven, wenn man das Tastatur-Layout anpasst:

sudo dpkg-reconfigure keyboard-configuration

Zur besseren Unterscheidung der Systeme sollte auch der Hostname geändert werden:

In diesem Fall zu portainer-pi.

sudo nano /etc/hostname

Nach einem Shutdown kann die microSD nun in das Rack wandern und es geht über `SSH` weiter.

Einschub

Sechs Stunden sind vergangen und ich muss leider sagen, dass Ubuntu Server 24.04 irgendeinen SSH-Bug hat, der immun gegen sämtliche Lösungen im Netz ist. Egal wie, wenn ich versuche über SSH in den Pi zu gelangen, bekomme ich die Meldung:

Permission denied (publickey)

Da würde mich brennend interessieren, ob trotz aller Lösungsansätze im Netz noch jemand dieses Problem hat.

Meine Lösung ist nun Ubuntu Server 22.04 zu nutzen. Das bedeutet zwar ein bisschen weniger Pro-Support-Zeitraum, aber besser als nichts.

Ubuntu Pro

Über meinen Account bei Ubuntu kann ich jetzt das Pro-Abo aktivieren. 

See https://ubuntu.com/esm

Auf der Website finde man sich nach der Registrierung auf dem Dashboard wieder und kann über einen Token Ubuntu-Pro aktivieren.

Mit dem folgenden Befehl kann das Abo aktiviert werden.

sudo pro attach XXXXXXXXXXXXXXXXXXXXXXXXXXXX

Soviel zu den lebensverlängernden Maßnahmen. Wir können zum eigentlichen Teil übergehen.

Selfhosted

Heimdall wird über Docker aufgesetzt. Das ist ein wichtige und innovative Methode, um Applikationen zugänglich zu machen. Es gibt aber spaßigere Felder in der IT-Landschaft (Anmerkung: eigene Meinung). Gut das es Portainer.io gibt, welches eine grafische Oberfläche für Docker bietet.

Es ist definitiv richtig und wichtig zu wissen, wie Docker über die Kommandozeile zu bediene ist, wenn man es nutzen möchte. Erfreulich ist, dass es immer Menschen gibt, die daran arbeiten Prozesse zu vereinfachen. Das kommt Nutzern wie mir zugute, die Docker nicht unbedingt zu ihren Lieblingsdisziplinen zählen.

Der YouTuber Novaspirit hat vor ein paar Jahren das pi-hosted-Projekt auf Github ins Leben gerufen, welches dem Anschein nach immer noch gewartet wird.

Der große Vorteil hierbei ist, dass über zwei Einzeiler die komplette Installation angestoßen und ausgeführt wird. Zudem ist das Projekt gut dokumentiert und mit einer Video-Tutorial-Serie bestückt.

(Die Befehle nicht blind ausführen)

wget -qO- https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/install_docker.sh | bash

reboot

wget -qO- https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/install_portainer.sh | bash

Ist das Skript durchgelaufen, sollte Portainer nach einem Reboot über die IP des Pis + plus den Port :9000  im Browser erreichbar sein.

Das wichtigste ist aber die Template-Liste des Projekts, welche über eine Vielzahl von Container-Vorlagen verfügt.

Sie können über Settings unter dem Punkt App Templates eingepflegt und gespeichert werden.

Im Verwaltungs-Menü befindet sich nun eine sehr ausschweifende Liste an Vorlagen.

Heute interessiert mich aber nur Heimdall ;-)

Und via "Deploy the container" kann man nun Heimdall über den Port :7202 erreichen (Anmerkung: In meinem Fall).

Heimdall

Ruft man die Seite zum ersten Mal auf, sieht das Ganze noch sehr nackt aus, aber das Befüllen geht recht schnell und einfach.

Über "Add an application" kann die einzige Website, die ich brauche, einpflegt werden.

Eine ganz klare Erleichterung ist, dass man in den Einstellungen alle Kacheln exportieren und somit auf dem neu aufgesetztem System mittels einer JSON-Datei wieder importieren kann.

Fazit

Ja, das hat nicht wirklich Spaß gemacht. Es dauert 9 bis 10 Minuten, diesen Artikel zu lesen. Ohne die SSH-Problematik hätte ich für das Aufsetzen wahrscheinlich nur eine Stunde benötigt. So sind es aber 7 Stunden geworden.

Nichtsdestotrotz lässt sich das Ergebnis sehen, ganz zu schweigen von der Vielfalt an Möglichkeiten, die pi-hosted sonst noch so bietet.

Ich bin zumindest heilfroh, dass ich mit dem Umzug auf Ubuntu endlich angefangen habe, denn alle 2 Jahre alle Server neu aufzusetzen ist für mich einfach nicht das richtige.

Am Ende stand ich dann doch auf einem Stuhl um an mein Rack heranzukommen, wodurch ich beschlossen habe einen kleinen Kontroll-Monitor dort einzubauen, der das Debugging erleichtern soll, falls es mal wieder SSH-Probleme gibt.

Im nächsten Teil wird dann Pi-Hole in Angriff genommen.

Tags

Raspberry Pi, Ubuntu Server, Heimdall, Docker

Tom
Geschrieben von Tom am 19. August 2024 um 10:31

Bei Heimdall finde ich gut, dass es Mehrbenutzer-Support hat und ein Autologin unterstützt wird. So wird bei uns im Firefox die Heimdall-Seite als Startseite eingerichtet und das Dashboard steht sofort beim Firefox-Start zur Verfügung.

Weiß jemand, ob andere Dashboards auch das Autologin-Feature unterstützen ? Denn die Entwicklung scheint bei Heimdall etwas eingeschlafen zu sein.

Sven
Geschrieben von Sven am 19. August 2024 um 10:53

Ein wirklich schön netter Artikel. Bzgl. des SSH-Keyproblems weiß ich nicht genau, ob das die Ursache sein könnte, aber Berechtigungen auf das ~/.ssh-Verzeichnis und auch darin befindliche Dateien haben mir vor Jahren mal Kopfschmerzen bereitet. Vielleicht hatte group oder gar others Leserecht, was nicht korrekt ist, denn nur der User selbst soll(te) zugreifen dürfen.

devzero
Geschrieben von devzero am 19. August 2024 um 12:52

Wegen dem ssh sieht man normal unter /var/log/auth.log was ihm nicht gepasst hat. Bei mir ist der openmediavault updater auf die idee gekommen, ssh so zu regelmentieren, dass das nur eine bestimmte nutzergruppe mit ssh verbinden darf. Ist ggf eh nett, aber mitteilen hättens das da einen schon können. Das habe ich auch dort rausgefunden. Sonst wennst mit einem passwort rein willst und nicht mit einem key, musst in der /etc/sshd.conf passwort auth erlauben.

raspel
Geschrieben von raspel am 19. August 2024 um 13:17

Ich hatte mal folgendes Fehlerverhalten auf einem PI4:

Aus meinem Wiki:

sshd restart fehlerhaft

Debian Bullseye, 27.12.2023 Auf dem Pi4 kam es nach dem letzten openss-server update zu folgendem Fehler:

kex_exchange_identification: read: Connection reset by peer Connection reset by 192.168.1.1 port 22

Es gab keine Möglichkeit mehr auf den Pi zu kommen… ewe-Reset… Toll… Im weiteren stellte ich fest, dass nach einem Restart des Service mit

systemctl restart ssh

wieder keinen Zugang hatte… Der sshd läuft, nimmt aber keine Verbindungen an. Im Status des Daemons sah ich folgendes:

Missing privilege separation directory: /run/sshd

Datei angelegt… Alles wieder gut… Bis zum nächsten restart des Service.

Lösung:

In die Datei /etc/systemd/system/sshd.service muss folgender Eintrag rein:

RuntimeDirectory=sshd --> RuntimeDirectoryPreserve=yes

Actionschnitzel
Geschrieben von Actionschnitzel am 20. August 2024 um 00:28

Um mal allen Kommentaren zum SSH-Problem zu antworten:

Ich hab das wirklich alles versucht. Nichts hat geholfen. Als Nächstes ist ja der PiHole-Pi dran und da werde ich es nochmal mit 24.04 versuchen und den Ratschlägen von Euch. Ich habe aber das Gefühl, dass ich wieder mit 22.04 gehen muss.

Troubleshooting macht aber auch irgendwie Spaß ;-) ...

Michel
Geschrieben von Michel am 20. August 2024 um 14:44

So einen Fehler hatte ich auch schon. Gelöst habe ich es, indem ich mit -i den key mit angegeben habe.

Ich vermute als Ursache zu viele Keys in .ssh/ Wenn ssh alle der reihe nach durchprobiert bricht der Server irgendwann ab.

massimofunghi
Geschrieben von massimofunghi am 20. August 2024 um 17:30

klingt nach .ssh nicht aufgeräumt. hat mich auch schon nerven gekostet, seitdem check ichs als erstes