Skip to main content

Docker (empfohlen)

Linux. --network host ist erforderlich, damit der Container Ihre BMCs direkt in Ihrem lokalen Netzwerk über UDP-Port 623 (dem IPMI/RMCP+-Port) erreichen kann. Ohne Host-Networking sitzt der Container hinter dem NAT von Docker und kann keine IPMI-Sitzung mit Ihrer Hardware aufbauen.
Windows / macOS. Docker Desktop unterstützt kein Host-Networking, ordnen Sie den Port stattdessen zu:
Beide Befehle hängen ein benanntes Volume (ipmideck-data) auf /data ein. Dieses Volume enthält Ihre config.yaml, die SQLite-Datenbank und den Verschlüsselungsschlüssel, der Ihre gespeicherten BMC- Zugangsdaten schützt, sodass sie einen Neustart, ein Upgrade oder ein docker rm überstehen. Ohne -v erhalten Sie bei jeder Neuerstellung des Containers eine frische, leere Installation. Sobald der Container läuft, öffnen Sie http://<your-ip>:3000 und folgen Sie dem Einrichtungsassistenten.
Das veröffentlichte Image liegt auf Docker Hub unter hub.docker.com/r/devluigi06/ipmideck.

pip

Das pip-Paket setzt voraus, dass ipmitool auf dem Host installiert ist, ipmideck ruft ipmitool für jede IPMI-Operation auf. Installieren Sie es zuerst über den Paketmanager Ihrer Distribution (zum Beispiel apt install ipmitool oder dnf install ipmitool).
Unter Debian 12+ und Ubuntu 23.04+ weigert sich ein einfaches pip install auszuführen und schlägt mit error: externally-managed-environment fehl. Das ist erwartet, siehe Installation unter Debian und Ubuntu weiter unten.

Installation unter Debian und Ubuntu (PEP 668)

Auf einem unveränderten Debian-12+- oder Ubuntu-23.04+-System bricht pip install ipmideck ab mit:
Das ist kein Fehler in ipmideck. Die Distribution reserviert das System-Python für ihren eigenen Paketmanager, apt hängt davon ab, und verhindert, dass pip hineinschreibt. Es gibt zwei unterstützte Wege, ipmideck trotzdem zu installieren.

pipx (empfohlen)

pipx installiert eine Python-Kommandozeilenanwendung in ihre eigene isolierte virtuelle Umgebung und stellt den resultierenden Befehl global bereit, ohne jemals das System-Python zu berühren. Genau das ist die Form von ipmideck, daher ist dies der Weg, den wir empfehlen:
pipx legt die ausführbare Datei in ~/.local/bin ab. Debian und Ubuntu fügen dieses Verzeichnis automatisch zu Ihrem PATH hinzu, sobald es existiert, aber nur für neue Shell-Sitzungen, sodass die allererste Installation eine Warnung ausgibt und ipmideck in der Shell, aus der Sie es ausgeführt haben, noch nicht gefunden wird:
Öffnen Sie ein neues Terminal (oder verbinden Sie sich per SSH neu) und der Befehl funktioniert. Wenn Ihre Shell ihn immer noch nicht findet, fügen Sie das Verzeichnis explizit hinzu und starten Sie dann eine neue Shell:
Überprüfen Sie die Installation mit dem Demo-Modus, der keine echte Hardware benötigt:

venv

Eine virtuelle Umgebung umgeht PEP 668 auf die gleiche Weise und ist die richtige Wahl, wenn Sie aus einem Source-Checkout arbeiten:
Der Befehl ipmideck ist verfügbar, sobald diese Umgebung aktiviert ist.
pip install --break-system-packages ipmideck funktioniert ebenfalls, aber es schreibt direkt in das System-Python und kann apt beschädigen, wenn eine Abhängigkeitsversion kollidiert. Bevorzugen Sie pipx oder eine venv.

Wo ipmideck Daten speichert

ipmideck schreibt seine Konfiguration und Datenbank in ein Datenverzeichnis:
  • Docker: /data innerhalb des Containers (das Image setzt IPMIDECK_DATA_DIR=/data; bewahren Sie es mit einem Volume auf).
  • pip unter Linux: standardmäßig /data, in das ein Nicht-Root-Benutzer normalerweise nicht schreiben kann.
  • pip unter Windows: ./data, relativ zu dem Verzeichnis, aus dem Sie ipmideck ausführen.
Unter Linux schlägt das Ausführen von ipmideck als normaler Benutzer ohne Überschreiben des Datenverzeichnisses beim Start mit PermissionError: [Errno 13] Permission denied: '/data' fehl. Richten Sie IPMIDECK_DATA_DIR auf ein Verzeichnis, das Ihnen gehört, wie unten gezeigt.
Richten Sie das Datenverzeichnis auf einen beschreibbaren Ort:
Sie können den Speicherort auf jeder Plattform mit der Umgebungsvariablen IPMIDECK_DATA_DIR überschreiben. Dieses Verzeichnis enthält config.yaml, die SQLite-Datenbank und die Schlüsseldatei für die Verschlüsselung, mit der Ihre gespeicherten BMC-Zugangsdaten geschützt werden. Siehe Konfiguration und ipmideck ausführen für Details.

Als Dienst ausführen (Linux)

ipmideck start in einem Terminal öffnet die interaktive Konsole und stoppt, wenn Sie die Sitzung schließen. Um ipmideck im Hintergrund laufen zu lassen und beim Systemstart zu starten, führen Sie es stattdessen unter systemd aus. Legen Sie einen dedizierten Benutzer an, installieren Sie ipmideck für ihn mit pipx und geben Sie ihm ein Datenverzeichnis, das ihm gehört:
Schreiben Sie dann die Unit:
Aktivieren und starten Sie sie:
Unter systemd gibt es kein angehängtes Terminal, sodass ipmideck die interaktive Konsole überspringt und einfache Logs an das Journal streamt (journalctl -u ipmideck -f), genau wie der Docker-Container. systemctl stop sendet SIGTERM, was dasselbe saubere Herunterfahren auslöst, das die Lüftersteuerung an Ihre BMCs zurückgibt. Siehe Headless-/Non-TTY-Modus.

Nächste Schritte