ipmideck, en de Docker-container,
die de webserver rechtstreeks draait. Ze gedragen zich verschillend, het host-commando
geeft je een interactieve operatorconsole, terwijl de container alleen platte
logs uitstuurt. Deze pagina behandelt beide.
Host-installatie: ipmideck start
Op een host-installatie (pip) wordt de server gestart met het commando ipmideck. Het primaire
commando is start:
ipmideck zonder subcommando werkt identiek aan ipmideck start:
0.0.0.0:3000, open dus http://<your-ip>:3000 in een
browser zodra hij draait.
ipmilink is een achterwaarts compatibele alias voor hetzelfde commando, ipmilink start
gedraagt zich precies als ipmideck start. Gebruik ipmideck voor alles wat nieuw is.ipmideck start een interactieve operatorconsole. Wanneer
hetzelfde commando zonder terminal draait, bijvoorbeeld doorgesluisd naar een bestand of onder een
procesbeheerder, slaat het de console over en serveert het met platte logs. Zie
de headless / non-TTY-modus hieronder.
Docker: de container draait de server rechtstreeks
De Docker-container draait het commandoipmideck niet. De image start de
webserver (uvicorn) rechtstreeks:
ipmideck-CLI nooit aanroept, zijn geen van de subcommando’s, vlaggen of
de interactieve console binnen Docker van toepassing, de container stuurt alleen ooit platte
logs naar stdout, precies zoals de headless host-modus. De container bindt aan
0.0.0.0:3000 en --network host is vereist zodat hij je BMC’s kan bereiken via UDP-poort
623. Zie Installatie voor de netwerkdetails.
Configureer de container met omgevingsvariabelen met
IPMIDECK_-prefix en een volume op
/data in plaats van CLI-vlaggen, zie Configuratie. De gepubliceerde image
komt binnenkort; het commando hierboven is precies het commando dat je uitvoert zodra het live is.De datamap
ipmideck schrijftconfig.yaml, de SQLite-database en de versleutelingssleutel voor inloggegevens naar
één datamap. Waar die staat, hangt af van het platform:
- Linux / Docker:
/data - Windows:
./data(relatief aan de map waaruit jeipmideckuitvoert)
IPMIDECK_DATA_DIR:
IPMIDECK_DATA_DIR=/data al in, maak dat pad dus persistent met een
volume om je configuratie en historie over herstarts van de container te behouden.
Overrides via omgevingsvariabelen
Elke omgevingsvariabele metIPMIDECK_-prefix die een config.yaml-instelling overschrijft,
werkt hetzelfde, of je nu op de host of in Docker draait, zie
Configuratie voor de volledige lijst. De twee die wijzigen hoe ipmideck
bindt zijn:
| Omgevingsvariabele | Effect |
|---|---|
IPMIDECK_SERVER_HOST | Bind-host (standaard 0.0.0.0). |
IPMIDECK_SERVER_PORT | Bind-poort (standaard 3000). |
Omgevingsvariabelen hebben voorrang op
config.yaml. Op een host-installatie wint een expliciete
bind-vlag op de commandoregel van zowel de omgevingsvariabele als het bestand.Poort al in gebruik
Als er al iets luistert op de bind-poort, weigert ipmideck te starten in plaats van met een andere instantie om de poort te vechten. Het print dit naar stderr en sluit af met status1:
IPMIDECK_SERVER_PORT
(of server.port in config.yaml), en start opnieuw.
Adres niet beschikbaar
Een andere fout is wanneer de host die je wilde binden niet kan worden gebruikt, bijvoorbeeld een adres dat niet bestaat op deze machine, een IPv6-only interface, of een geprivilegieerde poort die je niet mag binden. ipmideck rapporteert dit apart en sluit ook af met status1:
IPMIDECK_SERVER_HOST (of server.host), het moet een adres zijn dat
daadwerkelijk op de machine bestaat, en zorg dat de poort er een is die je mag binden.
Netjes afsluiten met Ctrl+C
Druk op Ctrl+C (datSIGINT stuurt; SIGTERM wordt op dezelfde manier afgehandeld) om
ipmideck te stoppen. Het afsluiten verloopt netjes: de webserver verlaat zijn lus, de
lifespan-shutdown van de applicatie draait, fanregeling wordt teruggegeven aan je BMC’s, en het proces
sluit netjes af zonder traceback.
In Docker stopt de container op SIGTERM (wat docker stop stuurt), dus hetzelfde
nette afsluiten draait wanneer je de container stopt.
Herstarten
Hoe een herstart werkt, hangt af van je besturingssysteem:- Linux (en andere POSIX-systemen): ipmideck herstart ter plekke: het start een
vers proces dat
config.yamlopnieuw inleest, met behoud van dezelfde besturende terminal. - Windows: er is geen in-place re-exec. ipmideck sluit netjes af en print een hint die je vraagt het commando zelf opnieuw uit te voeren:
ipmideck start opnieuw uit in dezelfde shell, het verse proces leest
config.yaml opnieuw en pikt de nieuwe instellingen op.
Headless / non-TTY-modus
Wanneer ipmideck draait zonder gekoppelde terminal, doorgesluisd naar een bestand, omgeleid, of onder een procesmanager, detecteert het dat er geen TTY is en slaat het de interactieve console over. Het serveert het dashboard normaal en stuurt platte logs naar stdout. Dit is dezelfde uitvoer die je krijgt van de Docker-container, die altijd zonder console draait. Deze modus heeft niets bijzonders nodig: start ipmideck gewoon zoals je supervisor of pipeline het aanroept, en lees de logs van stdout.Volgende stappen
- Installatie: Docker en pip in detail.
- Configuratie:
config.yaml, overrides via omgevingsvariabelen, en waar data staat. - Probleemoplossing: verbindings- en IPMI-fouten.