Skip to main content

Docker (zalecane)

Linux. --network host jest wymagane, aby kontener mógł docierać do twoich BMC bezpośrednio w twojej lokalnej sieci przez port UDP 623 (port IPMI/RMCP+). Bez sieci hosta kontener siedzi za NAT-em Dockera i nie może ukończyć sesji IPMI z twoim sprzętem.
Windows / macOS. Docker Desktop nie obsługuje sieci hosta, więc zamiast tego zmapuj port:
Oba polecenia montują nazwany wolumen (ipmideck-data) na /data. Ten wolumen zawiera twój config.yaml, bazę danych SQLite oraz klucz szyfrujący, który chroni przechowywane poświadczenia BMC, dzięki czemu przetrwają one restart, aktualizację czy docker rm. Bez -v przy każdym odtworzeniu kontenera otrzymujesz świeżą, pustą instalację. Gdy kontener już działa, otwórz http://<your-ip>:3000 i postępuj zgodnie z kreatorem konfiguracji.
Opublikowany obraz znajduje się na Docker Hub pod adresem hub.docker.com/r/devluigi06/ipmideck.

pip

Pakiet pip wymaga, aby ipmitool był zainstalowany na hoście, ipmideck wywołuje ipmitool przy każdej operacji IPMI. Zainstaluj go najpierw z menedżera pakietów twojej dystrybucji (na przykład apt install ipmitool lub dnf install ipmitool).
Na Debianie 12+ i Ubuntu 23.04+ zwykłe pip install odmawia uruchomienia i kończy się błędem error: externally-managed-environment. To normalne, zobacz Instalacja na Debianie i Ubuntu poniżej.

Instalacja na Debianie i Ubuntu (PEP 668)

W standardowym systemie Debian 12+ lub Ubuntu 23.04+ pip install ipmideck zatrzymuje się z komunikatem:
To nie jest błąd w ipmideck. Dystrybucja rezerwuje systemowego Pythona dla swojego własnego menedżera pakietów, apt od niego zależy, i blokuje zapisywanie do niego przez pip. Mimo to istnieją dwa obsługiwane sposoby, aby i tak zainstalować ipmideck.

pipx (zalecane)

pipx instaluje aplikację Pythona z wiersza poleceń do jej własnego, izolowanego środowiska wirtualnego i udostępnia powstałe polecenie globalnie, nie dotykając przy tym systemowego Pythona. Dokładnie taką postać ma ipmideck, więc to ścieżka, którą zalecamy:
pipx umieszcza plik wykonywalny w ~/.local/bin. Debian i Ubuntu dodają ten katalog do twojego PATH automatycznie, gdy już istnieje, ale tylko dla nowych sesji powłoki, więc pierwsza instalacja wypisuje ostrzeżenie, a ipmideck nie jest jeszcze znajdowany w powłoce, z której go uruchomiłeś:
Otwórz nowy terminal (lub połącz się ponownie przez SSH), a polecenie zadziała. Jeśli twoja powłoka nadal nie może go znaleźć, dodaj katalog jawnie, a następnie uruchom nową powłokę:
Zweryfikuj instalację w trybie demo, który nie wymaga prawdziwego sprzętu:

venv

Środowisko wirtualne obchodzi PEP 668 w ten sam sposób i jest właściwym wyborem, jeśli pracujesz z kopii źródłowej:
Polecenie ipmideck jest dostępne zawsze, gdy to środowisko jest aktywowane.
pip install --break-system-packages ipmideck również działa, ale zapisuje bezpośrednio do systemowego Pythona i może zepsuć apt, jeśli wersja jakiejś zależności się zderzy. Preferuj pipx lub venv.

Gdzie ipmideck przechowuje dane

ipmideck zapisuje swoją konfigurację i bazę danych w katalogu danych:
  • Docker: /data wewnątrz kontenera (obraz ustawia IPMIDECK_DATA_DIR=/data; utrwal go za pomocą wolumenu).
  • pip na Linuksie: domyślnie /data, do którego zwykły użytkownik zazwyczaj nie może zapisywać.
  • pip na Windowsie: ./data, względem katalogu, z którego uruchamiasz ipmideck.
Na Linuksie uruchomienie ipmideck jako zwykły użytkownik bez nadpisania katalogu danych kończy się przy starcie błędem PermissionError: [Errno 13] Permission denied: '/data'. Wskaż w IPMIDECK_DATA_DIR katalog, którego jesteś właścicielem, jak pokazano poniżej.
Wskaż katalog danych w miejsce, gdzie można zapisywać:
Lokalizację możesz nadpisać na dowolnej platformie zmienną środowiskową IPMIDECK_DATA_DIR. Ten katalog zawiera config.yaml, bazę danych SQLite oraz plik klucza szyfrującego używany do ochrony przechowywanych poświadczeń BMC. Zobacz Konfiguracja i Uruchamianie ipmideck po szczegóły.

Uruchamianie jako usługa (Linux)

ipmideck start w terminalu otwiera konsolę interaktywną i zatrzymuje się, gdy zamkniesz sesję. Aby ipmideck działał w tle i uruchamiał się przy starcie systemu, uruchom go zamiast tego pod systemd. Utwórz dedykowanego użytkownika, zainstaluj dla niego ipmideck za pomocą pipx i nadaj mu katalog danych, którego jest właścicielem:
Następnie utwórz jednostkę:
Włącz ją i uruchom:
Pod systemd nie ma podłączonego terminala, więc ipmideck pomija konsolę interaktywną i przesyła zwykłe dzienniki do dziennika systemowego (journalctl -u ipmideck -f), dokładnie jak kontener Docker. systemctl stop wysyła SIGTERM, który wyzwala to samo łagodne wyłączanie, oddające sterowanie wentylatorami z powrotem twoim BMC. Zobacz Tryb headless / non-TTY.

Następne kroki