Skip to main content

Docker (aanbevolen)

Linux. --network host is vereist zodat de container je BMC’s rechtstreeks op je lokale netwerk kan bereiken via UDP-poort 623 (de IPMI/RMCP+-poort). Zonder host networking zit de container achter de NAT van Docker en kan hij geen IPMI-sessie met je hardware voltooien.
Windows / macOS. Docker Desktop ondersteunt geen host networking, map dus in plaats daarvan de poort:
Beide commando’s mounten een named volume (ipmideck-data) op /data. Dat volume bevat je config.yaml, de SQLite-database en de versleutelingssleutel die je opgeslagen BMC-inloggegevens beschermt, zodat ze een herstart, een upgrade of een docker rm overleven. Zonder -v krijg je elke keer dat de container opnieuw wordt aangemaakt een verse, lege installatie. Zodra de container draait, open je http://<your-ip>:3000 en volg je de installatiewizard.
De gepubliceerde image staat op Docker Hub op hub.docker.com/r/devluigi06/ipmideck.

pip

Het pip-pakket vereist dat ipmitool op de host is geïnstalleerd, ipmideck roept ipmitool aan voor elke IPMI-bewerking. Installeer het eerst via de pakketbeheerder van je distributie (bijvoorbeeld apt install ipmitool of dnf install ipmitool).
Op Debian 12+ en Ubuntu 23.04+ weigert een gewone pip install te draaien en mislukt met error: externally-managed-environment. Dit is verwacht, zie Installeren op Debian en Ubuntu hieronder.

Installeren op Debian en Ubuntu (PEP 668)

Op een standaard Debian 12+- of Ubuntu 23.04+-systeem stopt pip install ipmideck met:
Dit is geen bug in ipmideck. De distributie reserveert de systeem-Python voor haar eigen pakketbeheerder, apt is ervan afhankelijk, en blokkeert pip om erin te schrijven. Er zijn twee ondersteunde manieren om ipmideck toch te installeren.

pipx (aanbevolen)

pipx installeert een Python-commandoregeltoepassing in zijn eigen geïsoleerde virtuele omgeving en stelt het resulterende commando globaal beschikbaar, zonder ooit de systeem-Python aan te raken. Dat is precies de vorm van ipmideck, dus dit is het pad dat we aanbevelen:
pipx plaatst het uitvoerbare bestand in ~/.local/bin. Debian en Ubuntu voegen die map automatisch toe aan je PATH zodra hij bestaat, maar alleen voor nieuwe shell-sessies, dus de allereerste installatie print een waarschuwing en ipmideck wordt nog niet gevonden in de shell waaruit je het uitvoerde:
Open een nieuwe terminal (of maak opnieuw verbinding via SSH) en het commando werkt. Als je shell het nog steeds niet kan vinden, voeg de map dan expliciet toe en start daarna een nieuwe shell:
Verifieer de installatie met demomodus, die geen echte hardware nodig heeft:

venv

Een virtuele omgeving omzeilt PEP 668 op dezelfde manier, en is de juiste keuze als je vanuit een source-checkout werkt:
Het ipmideck-commando is beschikbaar zolang die omgeving geactiveerd is.
pip install --break-system-packages ipmideck werkt ook, maar het schrijft rechtstreeks in de systeem-Python en kan apt breken als een afhankelijkheidsversie botst. Geef de voorkeur aan pipx of een venv.

Waar ipmideck gegevens opslaat

ipmideck schrijft zijn configuratie en database naar een datamap:
  • Docker: /data binnen de container (de image stelt IPMIDECK_DATA_DIR=/data in; maak het persistent met een volume).
  • pip op Linux: standaard /data, waar een niet-root-gebruiker normaal gesproken niet in kan schrijven.
  • pip op Windows: ./data, relatief aan de map waaruit je ipmideck uitvoert.
Op Linux mislukt ipmideck draaien als normale gebruiker zonder de datamap te overschrijven bij het opstarten met PermissionError: [Errno 13] Permission denied: '/data'. Wijs IPMIDECK_DATA_DIR naar een map die je zelf bezit, zoals hieronder getoond.
Wijs de datamap naar een schrijfbare locatie:
Je kunt de locatie op elk platform overschrijven met de omgevingsvariabele IPMIDECK_DATA_DIR. Deze map bevat config.yaml, de SQLite-database en het bestand met de versleutelingssleutel dat je opgeslagen BMC-inloggegevens beschermt. Zie Configuratie en ipmideck draaien voor details.

Als service draaien (Linux)

ipmideck start in een terminal opent de interactieve console en stopt wanneer je de sessie sluit. Om ipmideck op de achtergrond te laten draaien en bij het opstarten te starten, draai je het in plaats daarvan onder systemd. Maak een dedicated gebruiker aan, installeer ipmideck ervoor met pipx, en geef hem een datamap die hij zelf bezit:
Schrijf daarna de unit:
Schakel hem in en start hem:
Onder systemd is er geen gekoppelde terminal, dus ipmideck slaat de interactieve console over en stuurt platte logs naar de journal (journalctl -u ipmideck -f), precies zoals de Docker-container. systemctl stop stuurt SIGTERM, wat dezelfde nette afsluiting activeert die de fanregeling teruggeeft aan je BMC’s. Zie Headless / non-TTY-modus.

Volgende stappen