Sie befinden sich hier: REX 18 / PSI 16 » REX3D » REX3D einrichten

REX3D einrichten

Dies ist eine alte Version des Dokuments!


REX3D mit OpenFOAM einrichten

REX3D verwendet in Kombination mit unserem OpenFOAM-Solver eine gekapselte Linux-Umgebung. Nach der einmaligen Einrichtung des Zugriffs sind keine weiteren Konfigurationen erforderlich. Die benötigten Container werden von REX automatisch bereitgestellt und eingerichtet.

Für die Verwendung des OpenFOAM-Solvers stehen zwei Varianten zur Verfügung:

  • lokaler Betrieb eines Linux-Containers in einer WSL-Umgebung
  • Remotezugriff auf ein Linux-System

Die Einrichtung beider Varianten wird in den folgenden Abschnitten beschrieben.

Verwendung auf einem lokalen PC mit WSL

Möchten Sie REX3D mit OpenFOAM lokal verwenden müssen WSL installieren und eine lokale virtuelle Maschine verwenden.

WSL auf dem Client-PC installieren

REX3D-Optionen anpassen

Verwendung eines Remote-Servers

Mit dem Podman-Remote-Client kann ein Windows-PC auf ein Podman-Backend auf einem Linux-Server zugreifen. Das Podman-Backend stellt die für REX3D beziehungsweise PSI benötigte OpenFOAM-Umgebung bereit.

Für REX3D beziehungsweise PSI verhält sich die entfernte Podman-Installation weitgehend wie eine lokale Podman-Installation.

Voraussetzungen

Die Verbindung basiert auf einem Client-Server-Modell.

Folgende Komponenten werden benötigt:

  • Linux-Server oder Linux-VM
  • laufender SSH-Dienst auf dem Server
  • Podman auf dem Server
  • Windows-PC mit einer REX- beziehungsweise PSI-Version
  • OpenSSH-Client auf dem Windows-PC
  • Podman-Client auf dem Windows-PC

Diese Anleitung basiert auf Ubuntu 24.04 oder einer vergleichbaren Ubuntu-Version mit systemd. Podman ist über die offiziellen Ubuntu-Paketquellen verfügbar.

In den folgenden Befehlen werden Platzhalter verwendet. Ersetzen Sie diese durch die Werte Ihrer Umgebung:

  • <SERVER>: Hostname oder IP-Adresse des Servers
  • <ADMIN>: administrativer Benutzer auf dem Server
  • <e3d_usr>: unprivilegierter Benutzer für Podman und OpenFOAM
  • <ssh_podman_e3d_usr>: Dateiname des SSH-Schlüssels
  • <UID>: numerische Benutzer-ID des Benutzers <e3d_usr>

1. Podman auf dem Server installieren

1.1 Am Server anmelden

Öffnen Sie auf dem Windows-PC PowerShell und stellen Sie eine SSH-Verbindung zum Server her:

ssh.exe <ADMIN>@<SERVER>

1.2 Benötigte Pakete installieren

Aktualisieren Sie zunächst die Paketinformationen:

sudo apt-get update

Installieren Sie anschließend die benötigten Pakete:

sudo apt-get install podman

Prüfen Sie die Installation:

podman --version

2. Podman-Benutzer einrichten

2.1 Benutzer ohne lokale Passwortanmeldung anlegen

Legen Sie als Administrator einen separaten Benutzer für Podman und OpenFOAM an:

sudo adduser \
  --disabled-password \
  --gecos "" \
  <e3d_usr>

Der Benutzer erhält kein lokales Passwort. Die Anmeldung erfolgt später ausschließlich über einen SSH-Schlüssel.

2.2 Dateisystem des Home-Verzeichnisses prüfen

Prüfen Sie, auf welchem Dateisystem sich das Home-Verzeichnis des Benutzers befindet:

findmnt -T /home/<e3d_usr>

Für den Container-Storage eignen sich lokale Dateisysteme wie ext4, xfs oder btrfs.

Befindet sich das Home-Verzeichnis auf einem NFS-Dateisystem, richten Sie für den Podman-Storage einen lokalen Speicherpfad ein. NFS ist für Rootless-Container-Storage in der Regel nicht geeignet.

2.3 Benutzerspezifische systemd-Dienste dauerhaft aktivieren

Damit benutzerspezifische systemd-Dienste auch ohne aktive SSH-Sitzung ausgeführt werden können, aktivieren Sie die Linger-Funktion für den Benutzer:

sudo loginctl enable-linger <e3d_usr>

Prüfen Sie anschließend den Status:

loginctl show-user <e3d_usr> -p Linger

Erwartete Ausgabe:

Linger=yes

3. SSH-Schlüssel auf dem Windows-PC einrichten

Auf dem Windows-PC muss der OpenSSH-Client installiert sein.

3.1 OpenSSH-Installation prüfen

Öffnen Sie PowerShell und prüfen Sie, ob die benötigten Programme verfügbar sind:

Get-Command ssh.exe
Get-Command ssh-keygen.exe
Get-Command scp.exe
 
ssh.exe -V 

OpenSSH für Windows stellt unter anderem die Programme ssh, scp und ssh-keygen bereit.

3.2 SSH-Schlüssel erzeugen

Legen Sie zunächst den Pfad für den neuen SSH-Schlüssel fest:

$KeyPath = "$env:USERPROFILE\.ssh\<ssh_podman_e3d_usr>"

Erstellen Sie das Verzeichnis .ssh, falls es noch nicht vorhanden ist:

New-Item `
    -ItemType Directory `
    -Force `
    -Path "$env:USERPROFILE\.ssh" |
    Out-Null

Prüfen Sie, ob unter dem gewählten Namen bereits Schlüsseldateien vorhanden sind:

Test-Path $KeyPath
Test-Path "$KeyPath.pub"

Beide Befehle sollten folgende Ausgabe liefern:

False

Hinweis: Sind unter dem angegebenen Pfad bereits Dateien vorhanden, prüfen Sie vor dem nächsten Schritt, ob diese Schlüssel noch benötigt werden. Vorhandene Schlüssel dürfen nicht unbeabsichtigt überschrieben werden.

Erzeugen Sie anschließend einen neuen SSH-Schlüssel:

ssh-keygen.exe `
    -t ed25519 `
    -a 100 `
    -f $KeyPath `
    -C "<e3d_usr>@<SERVER>"

Dabei werden zwei Dateien erzeugt:

<ssh_podman_e3d_usr>       Privater Schlüssel
<ssh_podman_e3d_usr>.pub   Öffentlicher Schlüssel

Wichtig: Der private Schlüssel darf den Windows-PC, auf dem REX3D beziehungsweise PSI installiert ist, nicht verlassen.

3.3 Öffentlichen Schlüssel auf den Server übertragen

Kopieren Sie den öffentlichen Schlüssel zunächst in das temporäre Verzeichnis des Servers:

scp.exe `
    "$KeyPath.pub" `
    "<ADMIN>@<SERVER>:/tmp/<e3d_usr>.pub"

Melden Sie sich anschließend als Administrator auf dem Server an:

ssh.exe <ADMIN>@<SERVER>

3.4 Öffentlichen Schlüssel für den Podman-Benutzer installieren

Erstellen Sie zunächst das SSH-Verzeichnis des Podman-Benutzers:

sudo install \
  -d \
  -m 700 \
  -o <e3d_usr> \
  -g <e3d_usr> \
  /home/<e3d_usr>/.ssh

Installieren Sie anschließend den öffentlichen Schlüssel als authorized_keys:

sudo install \
  -m 600 \
  -o <e3d_usr> \
  -g <e3d_usr> \
  /tmp/<e3d_usr>.pub \
  /home/<e3d_usr>/.ssh/authorized_keys

Löschen Sie danach die temporäre Datei:

sudo rm -f /tmp/<e3d_usr>.pub

Prüfen Sie abschließend die Berechtigungen:

sudo ls -ld /home/<e3d_usr>/.ssh
sudo ls -l /home/<e3d_usr>/.ssh/authorized_keys

3.5 SSH-Anmeldung als Podman-Benutzer testen

Stellen Sie auf dem Windows-PC eine SSH-Verbindung mit dem neu erzeugten Schlüssel her:

ssh.exe `
    -i "$env:USERPROFILE\.ssh\<ssh_podman_e3d_usr>" `
    <e3d_usr>@<SERVER>

Prüfen Sie nach der Anmeldung Benutzer, Gruppen und Arbeitsverzeichnis:

whoami
id
pwd

Unter anderem werden folgende Werte erwartet:

<e3d_usr>
/home/<e3d_usr>

Die Ausgabe von id muss die Benutzer- und Gruppeninformationen des Benutzers <e3d_usr> anzeigen.

Optional können Sie die SSH-Verbindung direkt vom Windows-PC aus testen:

ssh.exe `
    -i "$env:USERPROFILE\.ssh\<ssh_podman_e3d_usr>" `
    <e3d_usr>@<SERVER> `
    "whoami; podman --version"

4. Podman-Socket auf dem Server aktivieren

4.1 Podman als unprivilegierter Benutzer testen

Melden Sie sich als <e3d_usr> auf dem Server an und führen Sie folgenden Befehl aus:

podman info

Wichtig: Der Befehl muss ohne sudo ausgeführt werden.

4.2 Podman-Socket aktivieren

Aktivieren Sie als Benutzer <e3d_usr> den Podman-Socket:

systemctl --user enable --now podman.socket

Prüfen Sie anschließend den Status:

systemctl --user status podman.socket --no-pager

4.3 Socket-Pfad ermitteln

Prüfen Sie den Pfad des Podman-Sockets:

echo "$XDG_RUNTIME_DIR/podman/podman.sock"
ls -l "$XDG_RUNTIME_DIR/podman/podman.sock"

Der Rootless-Podman-Socket befindet sich standardmäßig unter:

/run/user/<UID>/podman/podman.sock

Ermitteln Sie die numerische UID des Benutzers mit folgendem Befehl:

id -u

Notieren Sie die ausgegebene UID. Sie wird später für die Einrichtung der Podman-Remote-Verbindung benötigt.

Podman verwendet für den API-Socket die systemd-Socket-Aktivierung. In Verbindung mit loginctl enable-linger bleibt der Socket auch ohne aktive SSH-Sitzung verfügbar.

5. Podman-Remote-Verbindung auf dem Windows-PC einrichten

Auf dem Windows-PC muss ein Podman-Client installiert sein.

5.1 Podman-Verbindung hinzufügen

Öffnen Sie PowerShell und legen Sie eine neue Podman-Verbindung an:

podman.exe system connection add `
    remote-vm-ktp `
    --identity "$env:USERPROFILE\.ssh\<ssh_podman_e3d_usr>" `
    "ssh://<e3d_usr>@<SERVER>/run/user/<UID>/podman/podman.sock"

Ersetzen Sie <UID> durch die zuvor ermittelte numerische UID des Benutzers <e3d_usr>.

Beispiel:

ssh://e3d@openfoam-server.example.org/run/user/1001/podman/podman.sock

5.2 Podman-Verbindung anzeigen

Zeigen Sie die konfigurierten Verbindungen an:

podman.exe system connection list

Die Verbindung remote-vm-ktp sollte in der Liste erscheinen.

5.3 Podman-Verbindung testen

Testen Sie die Verbindung:

podman.exe `
    --connection remote-vm-ktp `
    info

Der Befehl sollte Informationen zur Podman-Installation auf dem Linux-Server anzeigen.

Optional können Sie einen Testcontainer starten:

podman.exe `
    --connection remote-vm-ktp `
    run `
    --rm `
    docker.io/library/alpine:latest `
    uname -a

Der Container wird auf dem Linux-Server ausgeführt. Auf dem Windows-PC wird lediglich der Podman-Remote-Client verwendet.

6. Podman-Verbindung in REX3D konfigurieren

Öffnen Sie die REX3D-Optionen und tragen Sie dort den Namen der zuvor angelegten Podman-Verbindung ein.

Bei Verwendung der Befehle aus dieser Anleitung lautet der Verbindungsname:

remote-vm-ktp

Die verfügbaren Podman-Verbindungen können jederzeit mit folgendem Befehl angezeigt werden:

podman.exe system connection list

Nach erfolgreicher Konfiguration kann REX3D die OpenFOAM-Container über die eingerichtete Podman-Remote-Verbindung auf dem Linux-Server verwenden.

Sicherheitshinweise

Der Podman-API-Socket ermöglicht die vollständige Verwaltung aller Container, Images, Volumes und Pods des Benutzers <e3d_usr>.

Wichtig: Veröffentlichen Sie den Podman-Socket nicht über einen ungeschützten TCP-Port. Verwenden Sie stattdessen den in dieser Anleitung beschriebenen Zugriff über SSH auf den benutzereigenen Unix-Socket.

Für den Benutzer <e3d_usr> gelten folgende Empfehlungen:

  • Der Benutzer sollte keine sudo-Rechte besitzen.
  • Der Benutzer sollte kein Mitglied privilegierter Gruppen sein.
  • Der Benutzer sollte ausschließlich auf die benötigten Dateien und Verzeichnisse zugreifen können.
  • Der Benutzer sollte ausschließlich für REX3D, PSI und die zugehörigen OpenFOAM-Container verwendet werden.
  • Für den Benutzer sollte ein eigener SSH-Schlüssel verwendet werden.
  • Dem Benutzer dürfen keine privaten Schlüssel anderer Benutzer zur Verfügung gestellt werden.

Für den privaten SSH-Schlüssel auf dem Windows-PC gelten folgende Empfehlungen:

  • Verwenden Sie den Schlüssel ausschließlich für diesen Verwendungszweck.
  • Verteilen Sie den Schlüssel nicht per E-Mail oder über gemeinsam genutzte Netzlaufwerke.
  • Schützen Sie den Schlüssel durch geeignete Dateiberechtigungen.
  • Entfernen Sie den zugehörigen öffentlichen Schlüssel bei Verlust des privaten Schlüssels oder bei einem Gerätewechsel aus der Datei authorized_keys.
rex3d/openfoamremote.1786089415.txt.gz · Zuletzt geändert: 2026/08/07 09:56