TrueNAS Scale – VM AlmaLinux + Docker mit Portainer

Inhaltsverzeichnis

Mit der Version TrueNAS Scale 24.10 „Electric Eel“ hat man sich von Kubernetes verabschiedet und ist zum einfacheren Docker und Docker Compose gewechselt.
Hin zu kam für die Container Verwaltung die Möglichkeit Portainer oder Dockge ein zu setzten. Vieles funktioniert ganz ordentlich, aber vieles eben auch ganz und gar nicht. So richtig warm bin ich mit den TrueNAS Apps noch nicht geworden.

Da aber TrueNAS auch die Möglichkeit bietet eigene VMs auf zu setzten, war die Überlegung, eine Debian/Ubuntu oder AlmaLinux Server VM zu installieren und unter dieser eine Docker Instanz zu betreiben, in der Hoffnung, dass hier alles besser und einfacher funktioniert.

Das installieren einer VM ist relativ simpel. Ein wirkliches Problem besteht jedoch darin, das die VMs nur per Spice erreichbar sind. Ein Zugriff per SSH oder VNC ist nicht vorhanden. Hin zu kommt, das in diesem Fall SPICE kein Copy & Paste kann. Das heißt, jede Konfiguration und jeder Codeschnipsel, müsste händisch eingetippt werden.

Im folgende zeige ich, wie man eine Server VM aufsetzt, mit funktionierendem Copy & Paste + Servermanagement Cockpit + Docker und Portainer.

In meinem Fall habe ich einen Standalone TrueNAS Server mit einem Benutzer und einem RAIDZ1 Pool.
Die VMs sowie die TrueNAS Apps laufen direkt auf diesem Pool.

Getestet:

AlmaLinux 8.10
Alma Linux 9.5

Voraussetzung:

Ein fertig eingerichteter TrueNAS Scale Server.
Einen Benutzer.
Mindestens einen Daten Pool.

Dataset erstellen und SMB Freigabe

An diesem Bespiel:

  • Mein Pool: Datengrab1
  • Mein Benutzer: michael

Als erstes sollte ein neues Dataset für die VM erstellt werden. In diesem Dataset erstelle ich zusätzlich eine SMB Freigabe für den Benutzer michael. Dort sollten in Zukunft die ISO Dateien für die VMs abgelegt werden. Diese möchte ich über die SMB Freigabe direkt verwalten. Neue ISO speichern und löschen.

Was haben wir:

  • Einen Pool mit dem Namen Datengrab1.
  • Einmal Dataset ix-applications = TrueNAS Apps (Docker).

Was machen wir:

  • Neu erstellt wird das Dataset VM-Maschine mit der Berechtigung für Benutzer libvirt-qemu.
  • Erstellt wird das Dataset ISO mit der SMB Freigabe für den Benutzer michael, in welchen die ISO Dateien abgelegt werden.
  1. Meldet euch bei TrueNAS an und geht zum Menü Dataset.

  2. Fügt einen neuen Datensatz hinzu „Datensatz hinzufügen“.

  3. Vergebt einen Namen. In meinem Fall: „VM-Maschinen

  4. Wählt euer neues Dataset VM-Maschinen aus und geht erneut auf „Datensatz hinzufügen“. Das neue Dataset soll unsere SMB Freigabe für die ISO Dateien werden. In meinem Fall vergebe ich den Namen ISO. Das Dataset ist VM-Maschine untergeordnet.

  5. Nun müssen die Berechtigungen geändert werden. Wählt euer Dataset VM-Maschine und geht im Menü rechts auf „Berechtigung Bearbeiten“.

  6. Der aktuelle Benutzer „root“ muss geändert werden auf den Benutzer „libvirt-qemu“. Speichert die Einstellungen.

  1. Nun wählt ihr das Dataset ISO und geht auf „Berechtigung Bearbeiten“. Ändert dort die Berechtigung auf euren aktuellen Benutzer. Bei mir Benutzer michael und die Gruppe des Benutzers, der bei mir auch michael lautet.
  1. Erstellt für das Dataset ISO eine SMB Freigabe. Rechts im Menü –> „Roles“ –> „Create SMB Share“.
  1. SMB Dienst neustarten bestätigt ihr mit „Restart Service„.

  2. Nun werdet ihr danach gefragt ob ihr eine ACL konfigurieren wollt. Bestätigt mit „Nein“.

Am Ende sollte es so aussehen.

Nun solltet ihr über das Netzwerk mit eurem TrueNAS Benutzer, Zugriff auf den Ordner ISO haben. Da wir hier SMB nutzen, geht das von Windows, Apple und Linux Geräten aus.

Hier nochmals eine Gesamtübersicht mit allen wichtigen Punkten rot markiert.
Zu sehen sind auch installierte VMs.

VM- Maschinen Installieren

In den zuvor angelegten Ordner ISO, könnt ihr nun eure ISOs ablegen.

In diesem Bespiel installieren wir AlmaLinux 9.5
Dazu lade ich mir die AlmaLinux OS 9.5 minimal ISO herunter, da wir nur eine Grundkonfiguration des Server brauchen, reicht die minimal Version.

  • Geht nun zum Menü Virtualisierung und wählt „Hinzufügen“.

Im folgenden meine Bespielkonfiguration, welche natürlich von euerer – je nach eingesetzter Hardware – abweichen kann.

  1. Betriebssystem
1. Betriebssystem
2. CPU And Memory
3. Datenträger
  1. Datenträger
  • Bei AlmaLinux 9.x mache ich den Datenträger 50 GB groß und werde in später manuell vergrößern, sollte ich mehr brauchen.
  • Der Grund ist, dass durch ein Bug bei der Nutzung von LVM und größer als 50 GB, AlmaLinux als VM nicht mehr bootet.
  • Beschrieben ist das hier: https://github.com/hashicorp/packer/issues/12489
4. Netzwerkschnittstelle
5. Installationsmedium
6. GPU
7. Zustimmungsoption
Übersicht der VM

Ihr habt hier die Möglichkeit die Maschinen im aktuellen Zustand/Konfiguration zu Clonen. Das ist dann sinnvoll, wenn man mehrere identische VMs nutzen möchte, oder man möchte größere Änderungen vornehmen und will eine Kopie behalten, sollte doch was schief gehen.

Spice Zugriff auf die Cli

Am einfachsten ist der Zugriff über den integrierten Spice Client in TrueNAS.

  • Dazu klickt auf das Menü „Display“ bei eurer VM

Hinweis: Achtet darauf das euer Browser Popup Fenster zulässt!

Im neuen Fenster gebt das Passwort ein, welches ihr in eurer Konfiguration unter Punkt 1. Betriebssysteme festgelegt habt.

Meine Empfehlung ist ein Remote-Client, diese funktionieren am besten. Selber nutze ich unter Linux Remmina.

SPICE und Zugriff auf die CLI mit Remote Client

Linux: Remmina

Windows und Linux: Virt-Viewer

SPICE Zugangsdaten

Die Verbindungsdaten für Spice findet ihr in eurer VM unter dem Menü –> „Geräte“ –> „Display“. Klickt auf die drei Punkte und wählt Details.

Die erste VM erhält immer den Port 5900/5901.
Jeder weiter VM wird hochgezählt.
VM zwei erhält also Port 5902/5903 usw.

AlmaLinux 9.5 Installation

  1. Install AlmaLinux 9.5

  2. Sprache und Tastaturlayout

  1. Installation-Ziel
  1. Benutzereinstellungen: Benutzer anlegen und als Administrator festlegen
  1. Netzwerk & Rechnername (Optional)
  • Diese Anpassungen sind nicht zwingend notwendig und können später unter Cockpit geändert werden.

  • Als Rechnername vergebe ich: almalinux-9

  • Und eine feste IPv4 Adresse.

  1. Der Rest kann so bleiben und sollte so aussehen
  1. Installation Starten

  2. Ist die Installation abgeschlossen, schaltet die VM aus und geht ins Menü „Geräte“ und entfernt das „CD-ROM“ Laufwerk, damit die VM nicht bei jedem Start von der ISO bootet.

AlmaLinux Cockpit Installation

Logt euch mit eurem AlmaLinux Benutzer an der CLI an.

Führt folgende Befehle aus:

  1. System aktualisieren
				
					sudo dnf update -y
				
			
  1. Cockpit installieren
				
					sudo dnf install cockpit -y
				
			
  1. Cockpit aktivieren, damit beim nächsten Systemstart Cockpit mitgestartet wird
				
					sudo systemctl enable --now cockpit.socket
				
			
  1. Server neustarten
				
					reboot
				
			
  1. Nach dem Neustart zeigt euch das Terminal die Adresse von Cockpit an

Docker + Portainer Installation

Über Cockpit haben wir nun auch endlich ein ordentliches Terminal das Copy + Paste unterstützt mit Shift + Einf.

Docker Installation

				
					cd /
				
			
				
					sudo dnf remove runc podman
				
			
				
					sudo dnf -y install dnf-plugins-core
				
			
				
					sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
				
			
				
					sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
				
			
				
					sudo systemctl enable --now docker
				
			

Portainer Installation

Installation von Portainer CE (Community Edition)

				
					sudo docker volume create portainer_data
				
			
				
					sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.21.4
				
			

Installation von Portainer BE (Business Edition)

Für die BE braucht ihr einen Key, den ihr auf der Portainer Seite beantragen könnt.

				
					sudo docker volume create portainer_data
				
			
				
					sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ee:2.21.4
				
			

Portainer erreicht ihr nun über:  https://<AlmaLinux-IP:9443

Erstellt einen Benutzer. Dieser ist zugleich Admin.

VM Backup einrichten

Sollte mal was schief gehen, empfiehlt es sich in TrueNAS einen Backup Task für die VM zu erstellen.

  • Dazu geht ihr zum Menü „Data Portection“.
  • Bei „Periodic Snapshot Tasks“ geht auf „Hinzufügen“.

Hier habt ihr nun die Möglichkeit das ganze Dataset VM-Maschinen zu sichern, oder ihr legt einen Backup Task für die jeweilige VM an.

In meinem Fall mache ich von VM-Maschinen alle zwei Tage um 18:00 Uhr einen Snapshot, der 2 Wochen aufbewahrt werden soll.
Mit Rekursive wird von jedem untergeordneten Dataset ein separater Snapshot erstellt. Damit lassen sich auch einzelne VMs wiederherstellen.

AlmaLinux Datenträger vergrößern

Wie vergrößert man nun die virtuelle Festplatte in TrueNAS?
In diesem Bespiel werden wir das mit der Hilfe von Gparted Live ISO bewerkstelligen. Damit haben wir eine grafische Oberfläche und die Schritte sind verständlicher nachvollziehbar.

Ladet die aktuelle Gparted ISO herunter und speichert diese am selben Ort ab wie zuvor AlmaLinux in eurem ISO Ordner.

Beim Erstellen dieser Anleitung war die aktuelle Version:

gparted-live-1.7.0-1-amd64.iso

TrueNAS Dataset/Zvol vergrößern

  1. Geht zum Menü Dataset und wählt eure VM und wählt auf der rechten Seite „Zvol bearbeiten“.
  1. Vergebt nun die gewünschte Größe. In meinem Fall mache ich ein Upgrade von bisher 50 GB auf 100 GB.
  1. Jetzt müssen wir den zusätzlichen Speicher der VM zuweisen, bzw. den Datenträger neu partitionieren. Dazu geht ihr wieder zu eurer VM, schaltet diese aus und geht auf „Geräte“ dann auf „Hinzufügen“, wählt als „Typ“ CD-Rom aus. Wählt als ISO eure zuvor heruntergeladenen Gparted aus.
  1. Startet nun eure VM und verbindet euch wieder mit SPICE. Nun solltet ihr den Startbildschirm von Gparted sehen. Startet diese im default Modus.
  1. Mit Pfeiltaste und Tabulator könnt ihr navigieren. „Don’t touch keymap“ bestätigt mit „Ok.“
  1. Wählt eure Sprache „10 für German“ und bestätigt mit Enter.

  2. „Wich mode do you prefer ?“ bestätigt ihr mit „Enter“

  3. Sollte diese Meldung kommen, geht auf „Reparieren“

  1. Wählt eure lvm almalinux Partition aus, macht einen links Klick drauf und geht auf „Größe ändern/Verschieben“
  1. Bestätigt nun die Änderungen mit dem grünen Hacken.
  1. Doppelklick auf „Exit“ und „Shutdown“
  2. Entfernt das Gerät „CD-Rom“ und startet ganz normal die VM

VM vergrößern in Cockpit

  1. Meldet euch nun bei Cockpit an geht zum Menü „Anwendungen“ und installiert „Speicher“, um die Datenträger zu verwalten.
  2. Geht zum Menü Speicher. Dort hat nun bei mir die sda3 (1.) welche wir vergrößert haben, insgesamt 110 GB. Diesen Speicher müssen wir nun unserer root Partition (2.) zuweisen, damit dieser für uns nutzbar ist. Geht auf die drei Punkte der root Partition (3.) und wählt „Wachsen“
  1. Nun wählt den vollen Speicher um diesen zu zu weisen.

Vorher/Nacher

Schreibe einen Kommentar