ipmideck поставляется с одной консольной командой, ipmideck, которая запускает сервер, сбрасывает
пароль администратора или генерирует самоподписанный сертификат. ipmilink это обратно совместимый
псевдоним той же команды, каждая подкоманда и флаг ниже работают идентично под любым из
имён.
CLI применяется только при прямом запуске ipmideck (установка pip или исходный код). Образ
Docker запускает uvicorn backend.main:app напрямую и никогда не вызывает CLI, поэтому ни один
из этих флагов, приоритет привязки или защита единственного экземпляра не применяются к контейнеру. Привязка контейнера задаётся его собственной командой запуска. См. Установку.
Запуск сервера
start это основная команда обслуживания. Голый вызов без подкоманды обслуживает идентично,
поэтому эти варианты эквивалентны:
ipmideck start
# or, with no subcommand:
ipmideck
Без флагов ipmideck привязывается к 0.0.0.0:3000 по умолчанию, доступен на каждом интерфейсе,
на порту 3000. Откройте http://<your-ip>:3000, как только он запущен.
Переопределите привязку с помощью --host и --port:
ipmideck start --host 127.0.0.1 --port 8080
Подкоманды
| Подкоманда | Что она делает |
|---|
start | Запускает сервер (по умолчанию). Голый ipmideck без подкоманды также обслуживает. |
serve | Устаревший псевдоним start. Ведёт себя идентично; сохранён, чтобы существующие скрипты продолжали работать. |
reset-password | Интерактивно создаёт или обновляет вход администратора, затем завершается без обслуживания. |
serve это устаревший псевдоним start, предпочитайте start (или голый ipmideck) в новых
скриптах.
Флаги
Эти флаги верхнего уровня применяются к пути обслуживания. --demo и --config читаются перед любой
ветвью подкоманды, поэтому они также влияют на reset-password и --gen-cert.
| Флаг | Эффект |
|---|
--host <host> | Хост привязки. Значение по умолчанию из config.yaml или 0.0.0.0. Явный флаг побеждает конфигурацию. |
--port <port> | Порт привязки. Значение по умолчанию из config.yaml или 3000. Явный флаг побеждает конфигурацию. |
--demo | Запуск в демо-режиме с симулированными данными. |
--config <path> | Путь к загружаемому config.yaml. |
--reload | Включить автоперезагрузку для разработки. |
--gen-cert | Сгенерировать самоподписанный cert + ключ в data/certs/, записать пути в config.yaml и выйти. |
Приоритет привязки
Хост и порт, к которым ipmideck фактически привязывается, разрешаются в этом порядке, наивысший приоритет первым:
- Явный флаг
--host / --port в командной строке.
- Конфигурация, которая сама разрешает переменную окружения (
IPMIDECK_SERVER_HOST / IPMIDECK_SERVER_PORT)
над config.yaml над встроенным значением по умолчанию.
- Жёстко заданный резервный вариант
0.0.0.0:3000, используемый, если ранняя загрузка конфигурации завершается неудачей.
Иными словами: значение, которое вы сохраняете в config.yaml, переопределяется переменной окружения IPMIDECK_
или флагом --host / --port при следующей загрузке, окружение и CLI всегда побеждают.
Если config.yaml неправильно сформирован, ipmideck печатает предупреждение в stderr и возвращается к
0.0.0.0:3000.
Переменные окружения IPMIDECK_SERVER_HOST и IPMIDECK_SERVER_PORT используют
префикс IPMIDECK_. См. Конфигурацию для полного списка переопределений.
HTTPS с —gen-cert
--gen-cert генерирует самоподписанный сертификат и ключ, затем выходит. Он не запускает
сервер и не включает HTTPS сам по себе:
Он записывает пару cert + ключ в data/certs/, записывает их пути в блок server в
config.yaml и печатает три строки:
Generated: <path-to-cert>
Generated: <path-to-key>
Wrote cert_file/key_file to config.yaml. Set server.https=true and restart to serve over HTTPS.
Чтобы действительно обслуживать по HTTPS, установите server.https: true в config.yaml и перезапустите ipmideck. HTTPS никогда не включается автоматически.
Демо-режим
--demo запускает ipmideck на симулированном оборудовании вместо реальных BMC, полезно для оценки
панели без подключённых серверов:
Демо-режим устанавливается очень рано, перед любой ветвью подкоманды, поэтому всё приложение (конфигурация и запущенный сервер) его видит.
Сброс пароля администратора
reset-password интерактивно создаёт или обновляет вход администратора, затем выходит, ни разу не
запуская сервер:
Он запрашивает Username:, а затем New password: (скрытый ввод). Если учётная запись уже
существует, он обновляет пароль этого пользователя и печатает Password updated for <username>; иначе
создаёт пользователя и печатает User <username> created.
Автоперезагрузка для разработки
--reload это быстрый путь только для разработки: он передаёт управление собственному автоперезагружающему
супервизору uvicorn и возвращается. Он намеренно пропускает защиту порта единственного экземпляра, описанную
ниже, потому что перезагрузчик запускает свой собственный процесс супервизора.
--reload предназначен только для разработки. Поскольку он обходит защиту единственного экземпляра, запускайте его на
хосте, где никакой другой экземпляр ipmideck ещё не привязан к тому же порту.
Коды выхода
| Код выхода | Когда |
|---|
0 | Чистое завершение по Ctrl+C / SIGTERM, сервер останавливается корректно, без трассировки. |
1 | Порт уже используется на целевом хосте (возможно, запущен другой экземпляр), или привязка завершается неудачей, потому что адрес недоступен или не разрешён (например привилегированный порт или несуществующий интерфейс). |
На пути обслуживания (не --reload) ipmideck запускает защиту единственного экземпляра перед привязкой. Если
порт уже используется, он печатает ошибку в stderr и завершается с 1. Если привязка завершается неудачей, потому что
адрес недоступен или не разрешён, он печатает отдельную ошибку и также завершается с 1.
Следующие шаги