ipmideck, и контейнер
Docker, который запускает веб-сервер напрямую. Они ведут себя по-разному: команда хоста
даёт вам интерактивную консоль оператора, тогда как контейнер просто транслирует обычные
журналы. Эта страница охватывает оба случая.
Установка на хост: ipmideck start
При установке на хост (pip) сервер запускается командой ipmideck. Основная
команда, start:
ipmideck без подкоманды работает идентично ipmideck start:
0.0.0.0:3000, поэтому откройте http://<your-ip>:3000 в
браузере, как только он запущен.
ipmilink это обратно совместимый псевдоним той же команды, ipmilink start
ведёт себя в точности как ipmideck start. Используйте ipmideck для всего нового.ipmideck start открывает интерактивную консоль оператора. Когда
та же команда запускается без терминала, например перенаправленная в файл или под
супервизором процессов, она пропускает консоль и обслуживает с обычными журналами. См.
режим headless / non-TTY ниже.
Docker: контейнер запускает сервер напрямую
Контейнер Docker не запускает командуipmideck. Его образ запускает веб-сервер
(uvicorn) напрямую:
ipmideck, ни одна из подкоманд, флагов или
интерактивная консоль не применяются внутри Docker, контейнер всегда транслирует только обычные
журналы в stdout, в точности как режим headless на хосте. Контейнер привязывается к
0.0.0.0:3000, и --network host необходим, чтобы он мог достигать ваших BMC по UDP-порту
623. См. Установку для подробностей о сети.
Настройте контейнер с помощью переменных окружения с префиксом
IPMIDECK_ и тома на
/data вместо флагов CLI, см. Конфигурацию. Опубликованный образ
появится скоро; команда выше это в точности команда, которую вы выполните, как только он станет доступен.Каталог данных
ipmideck записываетconfig.yaml, базу данных SQLite и ключ шифрования учётных данных в
единый каталог данных. Где он находится, зависит от платформы:
- Linux / Docker:
/data - Windows:
./data(относительно каталога, из которого вы запускаетеipmideck)
IPMIDECK_DATA_DIR:
IPMIDECK_DATA_DIR=/data, поэтому сохраните этот путь с помощью
тома, чтобы сохранить конфигурацию и историю при перезапусках контейнера.
Переопределения через окружение
Каждая переменная окружения с префиксомIPMIDECK_, которая переопределяет настройку config.yaml,
работает одинаково, запускаете ли вы на хосте или в Docker, см.
Конфигурацию для полного списка. Две, которые меняют, как ipmideck
привязывается:
| Переменная окружения | Эффект |
|---|---|
IPMIDECK_SERVER_HOST | Хост привязки (по умолчанию 0.0.0.0). |
IPMIDECK_SERVER_PORT | Порт привязки (по умолчанию 3000). |
Переменные окружения имеют приоритет над
config.yaml. При установке на хост явный
флаг привязки в командной строке побеждает как переменную окружения, так и файл.Порт уже используется
Если что-то уже слушает на порту привязки, ipmideck отказывается запускаться, вместо того чтобы бороться с другим экземпляром за порт. Он печатает это в stderr и завершается со статусом1:
IPMIDECK_SERVER_PORT
(или server.port в config.yaml) и запустите снова.
Адрес недоступен
Другой тип сбоя, когда хост, который вы запросили для привязки, не может быть использован, например адрес, который не существует на этой машине, интерфейс только IPv6 или привилегированный порт, который вам не разрешено привязывать. ipmideck сообщает об этом отдельно и также завершается со статусом1:
IPMIDECK_SERVER_HOST (или server.host), это должен быть адрес, который
действительно существует на машине, и убедитесь, что порт это тот, который вам разрешено привязывать.
Корректное завершение работы с Ctrl+C
Нажмите Ctrl+C (что отправляетSIGINT; SIGTERM обрабатывается так же), чтобы остановить
ipmideck. Завершение корректное: веб-сервер выходит из своего цикла, выполняется завершение
lifespan приложения, управление вентиляторами возвращается вашим BMC, и процесс
завершается чисто, без трассировки.
В Docker контейнер останавливается на SIGTERM (что отправляет docker stop), поэтому то же
корректное завершение выполняется, когда вы останавливаете контейнер.
Перезапуск
Как работает перезапуск, зависит от вашей операционной системы:- Linux (и другие POSIX-системы): ipmideck перезапускается на месте: он перезапускает
новый процесс, который перечитывает
config.yaml, сохраняя тот же управляющий терминал. - Windows: нет повторного запуска на месте. ipmideck чисто завершается и печатает подсказку, прося вас снова выполнить команду самостоятельно:
ipmideck start снова в той же оболочке, новый процесс перечитывает
config.yaml и подхватывает новые настройки.
Режим headless / non-TTY
Когда ipmideck запускается без присоединённого терминала, перенаправленный в файл, переадресованный или под менеджером процессов, он обнаруживает отсутствие TTY и пропускает интерактивную консоль. Он обслуживает панель нормально и транслирует обычные журналы в stdout. Это тот же вывод, который вы получаете от контейнера Docker, который всегда работает без консоли. Этот режим не требует ничего особенного: просто запустите ipmideck так, как его вызывает ваш супервизор или конвейер, и читайте журналы из stdout.Следующие шаги
- Установка: Docker и pip подробно.
- Конфигурация:
config.yaml, переопределения через окружение и где находятся данные. - Устранение неполадок: ошибки подключения и IPMI.