ipmideck starten, und den Docker-Container,
der den Webserver direkt ausführt. Sie verhalten sich unterschiedlich, der Host-Befehl gibt Ihnen eine
interaktive Operator-Konsole, während der Container nur einfache Logs ausgibt. Diese Seite behandelt beide.
Host-Installation: ipmideck start
Bei einer Host-Installation (pip) wird der Server mit dem Befehl ipmideck gestartet. Der primäre
Befehl ist start:
ipmideck ohne Unterbefehl verhält sich identisch zu ipmideck start:
0.0.0.0:3000, öffnen Sie also http://<your-ip>:3000 in einem
Browser, sobald er läuft.
ipmilink ist ein rückwärtskompatibler Alias für denselben Befehl, ipmilink start
verhält sich genau wie ipmideck start. Verwenden Sie ipmideck für alles Neue.ipmideck start eine interaktive Operator-Konsole. Wenn
derselbe Befehl ohne Terminal läuft, zum Beispiel in eine Datei umgeleitet oder unter einem
Prozess-Supervisor, überspringt er die Konsole und gibt stattdessen einfache Logs aus. Siehe
den Headless-/Non-TTY-Modus weiter unten.
Docker: Der Container führt den Server direkt aus
Der Docker-Container führt nicht den Befehlipmideck aus. Sein Image startet den Webserver
(uvicorn) direkt:
ipmideck-CLI nie aufruft, gelten keine Unterbefehle, Flags oder die
interaktive Konsole innerhalb von Docker, der Container gibt nur einfache Logs an stdout aus,
genau wie der Headless-Host-Modus. Der Container bindet an 0.0.0.0:3000 und --network host ist
erforderlich, damit er Ihre BMCs über UDP-Port 623 erreichen kann. Siehe
Installation für die Netzwerkdetails.
Konfigurieren Sie den Container mit
IPMIDECK_-präfixierten Umgebungsvariablen und einem Volume auf
/data statt mit CLI-Flags, siehe Konfiguration. Das veröffentlichte Image
kommt in Kürze; der obige Befehl ist genau der Befehl, den Sie ausführen werden, sobald es live ist.Das Datenverzeichnis
ipmideck schreibtconfig.yaml, die SQLite-Datenbank und den Verschlüsselungsschlüssel für die
Zugangsdaten in ein einzelnes Datenverzeichnis. Wo das liegt, hängt von der Plattform ab:
- Linux / Docker:
/data - Windows:
./data(relativ zu dem Verzeichnis, aus dem Sieipmideckausführen)
IPMIDECK_DATA_DIR
überschreiben:
IPMIDECK_DATA_DIR=/data, bewahren Sie diesen Pfad also mit einem
Volume auf, um Ihre Konfiguration und Ihren Verlauf über Container-Neustarts hinweg zu erhalten.
Umgebungs-Überschreibungen
JedeIPMIDECK_-präfixierte Umgebungsvariable, die eine config.yaml-Einstellung überschreibt,
funktioniert gleich, ob Sie auf dem Host oder in Docker laufen, siehe
Konfiguration für die vollständige Liste. Die beiden, die ändern, wie ipmideck
bindet, sind:
| Umgebungsvariable | Wirkung |
|---|---|
IPMIDECK_SERVER_HOST | Bind-Host (Standard 0.0.0.0). |
IPMIDECK_SERVER_PORT | Bind-Port (Standard 3000). |
Umgebungsvariablen haben Vorrang vor
config.yaml. Bei einer Host-Installation gewinnt ein
explizites Bind-Flag auf der Kommandozeile über die Umgebungsvariable und die Datei.Port bereits in Verwendung
Wenn bereits etwas auf dem Bind-Port lauscht, weigert sich ipmideck zu starten, statt mit einer anderen Instanz um den Port zu kämpfen. Es gibt dies an stderr aus und beendet sich mit Status1:
IPMIDECK_SERVER_PORT
(oder server.port in config.yaml) und starten Sie erneut.
Adresse nicht verfügbar
Ein anderer Fehler tritt auf, wenn der Host, an den Sie binden wollten, nicht verwendet werden kann, zum Beispiel eine Adresse, die auf diesem Rechner nicht existiert, eine reine IPv6-Schnittstelle oder ein privilegierter Port, den Sie nicht binden dürfen. ipmideck meldet dies gesondert und beendet sich ebenfalls mit Status1:
IPMIDECK_SERVER_HOST (oder server.host), er muss eine Adresse sein, die
tatsächlich auf dem Rechner existiert, und stellen Sie sicher, dass der Port einer ist, den Sie binden dürfen.
Sauberes Herunterfahren mit Strg+C
Drücken Sie Strg+C (wasSIGINT sendet; SIGTERM wird gleich behandelt), um ipmideck zu stoppen.
Das Herunterfahren ist sauber: Der Webserver verlässt seine Schleife, das Lifespan-Shutdown der
Anwendung läuft, die Lüftersteuerung wird an Ihre BMCs zurückgegeben, und der Prozess
beendet sich sauber ohne Traceback.
In Docker stoppt der Container bei SIGTERM (was docker stop sendet), sodass beim Stoppen des
Containers dasselbe saubere Herunterfahren läuft.
Neustarten
Wie ein Neustart funktioniert, hängt von Ihrem Betriebssystem ab:- Linux (und andere POSIX-Systeme): ipmideck startet an Ort und Stelle neu: Es startet einen
frischen Prozess, der
config.yamlneu einliest und dasselbe steuernde Terminal behält. - Windows: Es gibt kein In-Place-Re-Exec. ipmideck fährt sauber herunter und gibt einen Hinweis aus, der Sie bittet, den Befehl selbst erneut auszuführen:
ipmideck start in derselben Shell erneut aus, der frische Prozess liest
config.yaml neu ein und übernimmt die neuen Einstellungen.
Headless-/Non-TTY-Modus
Wenn ipmideck ohne angehängtes Terminal läuft, in eine Datei umgeleitet, weitergeleitet oder unter einem Prozessmanager, erkennt es, dass kein TTY vorhanden ist, und überspringt die interaktive Konsole. Es bedient das Dashboard normal und gibt stattdessen einfache Logs an stdout aus. Das ist die gleiche Ausgabe, die Sie vom Docker-Container erhalten, der immer ohne Konsole läuft. Dieser Modus braucht nichts Besonderes: Starten Sie ipmideck einfach so, wie Ihr Supervisor oder Ihre Pipeline es aufruft, und lesen Sie die Logs von stdout.Nächste Schritte
- Installation: Docker und pip im Detail.
- Konfiguration:
config.yaml, Umgebungs-Überschreibungen und wo die Daten liegen. - Fehlerbehebung: Verbindungs- und IPMI-Fehler.