ipmideck, oraz kontener Docker,
który uruchamia serwer WWW bezpośrednio. Zachowują się różnie, polecenie hosta
daje interaktywną konsolę operatora, podczas gdy kontener jedynie przesyła zwykłe
dzienniki. Ta strona obejmuje oba przypadki.
Instalacja na hoście: ipmideck start
W instalacji na hoście (pip) serwer uruchamia się poleceniem ipmideck. Głównym
poleceniem jest start:
ipmideck bez podpolecenia działa identycznie jak ipmideck start:
0.0.0.0:3000, więc otwórz http://<your-ip>:3000 w
przeglądarce, gdy już działa.
ipmilink to wstecznie zgodny alias tego samego polecenia, ipmilink start
zachowuje się dokładnie jak ipmideck start. Używaj ipmideck do wszystkiego, co nowe.ipmideck start otwiera interaktywną konsolę operatora. Gdy
to samo polecenie działa bez terminala, na przykład przekierowane do pliku lub pod
nadzorcą procesów, pomija konsolę i serwuje zamiast tego zwykłe dzienniki. Zobacz
tryb headless / non-TTY poniżej.
Docker: kontener uruchamia serwer bezpośrednio
Kontener Docker nie uruchamia poleceniaipmideck. Jego obraz uruchamia serwer
WWW (uvicorn) bezpośrednio:
ipmideck, żadne z podpoleceń, flag ani
interaktywna konsola nie mają zastosowania wewnątrz Dockera, kontener kiedykolwiek przesyła tylko zwykłe
dzienniki do stdout, dokładnie jak tryb headless na hoście. Kontener wiąże się z
0.0.0.0:3000, a --network host jest wymagane, aby mógł docierać do twoich BMC przez port UDP
623. Zobacz Instalacja po szczegóły dotyczące sieci.
Skonfiguruj kontener za pomocą zmiennych środowiskowych z prefiksem
IPMIDECK_ oraz wolumenu na
/data zamiast flag CLI, zobacz Konfiguracja. Opublikowany obraz
pojawi się wkrótce; polecenie powyżej to dokładnie to polecenie, które uruchomisz, gdy będzie dostępne.Katalog danych
ipmideck zapisujeconfig.yaml, bazę danych SQLite oraz klucz szyfrujący poświadczenia do
jednego katalogu danych. Gdzie się on znajduje, zależy od platformy:
- Linux / Docker:
/data - Windows:
./data(względem katalogu, z którego uruchamiaszipmideck)
IPMIDECK_DATA_DIR:
IPMIDECK_DATA_DIR=/data, więc utrwal tę ścieżkę za pomocą
wolumenu, aby zachować konfigurację i historię między restartami kontenera.
Nadpisania środowiskowe
Każda zmienna środowiskowa z prefiksemIPMIDECK_, która nadpisuje ustawienie config.yaml,
działa tak samo, czy uruchamiasz na hoście, czy w Dockerze, zobacz
Konfiguracja po pełną listę. Dwie, które zmieniają to, jak ipmideck
się wiąże, to:
| Zmienna środowiskowa | Efekt |
|---|---|
IPMIDECK_SERVER_HOST | Host wiązania (domyślnie 0.0.0.0). |
IPMIDECK_SERVER_PORT | Port wiązania (domyślnie 3000). |
Zmienne środowiskowe mają pierwszeństwo przed
config.yaml. W instalacji na hoście jawna
flaga wiązania w wierszu poleceń wygrywa zarówno ze zmienną środowiskową, jak i z plikiem.Port już w użyciu
Jeśli coś już nasłuchuje na porcie wiązania, ipmideck odmawia uruchomienia, zamiast walczyć z inną instancją o port. Wypisuje to do stderr i kończy działanie ze statusem1:
IPMIDECK_SERVER_PORT
(lub server.port w config.yaml) i uruchom ponownie.
Adres niedostępny
Inny rodzaj awarii to gdy host, o którego wiązanie poprosiłeś, nie może być użyty, na przykład adres, który nie istnieje na tej maszynie, interfejs tylko IPv6 lub uprzywilejowany port, do którego wiązania nie masz uprawnień. ipmideck zgłasza to osobno i również kończy działanie ze statusem1:
IPMIDECK_SERVER_HOST (lub server.host), musi to być adres, który
faktycznie istnieje na maszynie, i upewnij się, że port jest jednym z tych, do których masz uprawnienia.
Łagodne wyłączanie za pomocą Ctrl+C
Naciśnij Ctrl+C (co wysyłaSIGINT; SIGTERM jest obsługiwany tak samo), aby zatrzymać
ipmideck. Wyłączanie jest łagodne: serwer WWW kończy swoją pętlę, uruchamia się
zamknięcie lifespan aplikacji, sterowanie wentylatorami wraca do twoich BMC, a proces
kończy się czysto bez śladu wyjątku.
W Dockerze kontener zatrzymuje się na SIGTERM (który wysyła docker stop), więc to samo
łagodne wyłączanie uruchamia się, gdy zatrzymujesz kontener.
Restartowanie
To, jak działa restart, zależy od twojego systemu operacyjnego:- Linux (i inne systemy POSIX): ipmideck restartuje się w miejscu: uruchamia
świeży proces, który ponownie odczytuje
config.yaml, zachowując ten sam terminal sterujący. - Windows: brak ponownego wykonania w miejscu. ipmideck wyłącza się czysto i wypisuje podpowiedź, prosząc, abyś sam ponownie uruchomił polecenie:
ipmideck start w tej samej powłoce, świeży proces ponownie odczyta
config.yaml i przejmie nowe ustawienia.
Tryb headless / non-TTY
Gdy ipmideck działa bez podłączonego terminala, przekierowany do pliku, przekierowany lub pod menedżerem procesów, wykrywa brak TTY i pomija interaktywną konsolę. Serwuje pulpit normalnie i przesyła zamiast tego zwykłe dzienniki do stdout. To to samo wyjście, które otrzymujesz z kontenera Docker, który zawsze działa bez konsoli. Ten tryb nie wymaga niczego specjalnego: po prostu uruchom ipmideck tak, jak wywołuje go twój nadzorca lub potok, i odczytuj dzienniki ze stdout.Następne kroki
- Instalacja: Docker i pip w szczegółach.
- Konfiguracja:
config.yaml, nadpisania środowiskowe i gdzie znajdują się dane. - Rozwiązywanie problemów: błędy połączenia i IPMI.