Skip to main content

Docker (推奨)

Linux. コンテナーがローカルネットワーク上で UDP ポート 623 (IPMI/RMCP+ ポート) を通じて BMC に直接到達できるよう、--network host が必要です。ホストネットワークがないと、コンテナーは Docker の NAT の背後に置かれ、ハードウェアとの IPMI セッションを完了できません。
Windows / macOS. Docker Desktop はホストネットワークをサポートしないため、代わりに ポートをマッピングします。
どちらのコマンドも、名前付きボリューム (ipmideck-data) を /data にマウントします。この ボリュームには config.yaml、SQLite データベース、そして保存された BMC 資格情報を保護する 暗号化キーが含まれるので、再起動、アップグレード、docker rm をまたいでも残ります。-v が ないと、コンテナーが再作成されるたびにまっさらな空のインストールになります。 コンテナーが起動したら、http://<your-ip>:3000 を開いてセットアップウィザードに従います。
公開イメージは Docker Hub の hub.docker.com/r/devluigi06/ipmideck にあります。

pip

pip パッケージはホストに ipmitool がインストールされている必要があります。ipmideck はすべての IPMI 操作で ipmitool を呼び出します。まずディストリビューションのパッケージマネージャーから インストールしてください (例: apt install ipmitool または dnf install ipmitool)。
Debian 12+ および Ubuntu 23.04+ では、素の pip install は実行を拒否し、 error: externally-managed-environment で失敗します。これは想定どおりの動作です。下記の Debian と Ubuntu へのインストール を参照してください。

Debian と Ubuntu へのインストール (PEP 668)

素の Debian 12+ または Ubuntu 23.04+ システムでは、pip install ipmideck は次のように停止します。
これは ipmideck のバグではありません。ディストリビューションはシステムの Python を自身の パッケージマネージャー用に予約しており (apt がそれに依存しています)、pip がそこに書き込むのを ブロックします。それでも ipmideck をインストールする、サポートされた方法が 2 つあります。

pipx (推奨)

pipx は、コマンドラインの Python アプリケーションを独自の隔離された仮想 環境にインストールし、システムの Python に一切触れずに、その結果生じるコマンドをグローバルに 公開します。これはまさに ipmideck の形なので、これが私たちが推奨する方法です。
pipx は実行可能ファイルを ~/.local/bin に配置します。Debian と Ubuntu は、そのディレクトリーが 存在すると自動的に PATH に追加しますが、それは 新しい シェルセッションに対してのみなので、 ごく最初のインストールでは警告が出力され、それを実行したシェルではまだ ipmideck が見つかりません。
新しい端末を開く (または SSH で再接続する) と、コマンドが動作します。それでもシェルが見つけられない 場合は、ディレクトリーを明示的に追加してから新しいシェルを開始します。
実際のハードウェアを必要としないデモモードでインストールを検証します。

venv

仮想環境も同じように PEP 668 を回避でき、ソースチェックアウトから作業している場合はこれが 適切な選択です。
その環境がアクティブになっているときはいつでも ipmideck コマンドが利用できます。
pip install --break-system-packages ipmideck も動作しますが、システムの Python に直接書き込むため、 依存関係のバージョンが衝突すると apt を壊す可能性があります。pipx か venv を優先してください。

ipmideck がデータを保存する場所

ipmideck は設定とデータベースをデータディレクトリーの下に書き込みます。
  • Docker: コンテナー内の /data (イメージが IPMIDECK_DATA_DIR=/data を設定します。 ボリュームで永続化してください)。
  • Linux 上の pip: デフォルトで /data。通常、非 root ユーザーは書き込めません。
  • Windows 上の pip: ./data。ipmideck を実行するディレクトリーからの相対パス。
Linux では、データディレクトリーを上書きせずに ipmideck を通常のユーザーとして実行すると、 起動時に PermissionError: [Errno 13] Permission denied: '/data' で失敗します。下記のように、 IPMIDECK_DATA_DIR を自分が所有するディレクトリーに向けてください。
データディレクトリーを書き込み可能な場所に向けます。
任意のプラットフォームで IPMIDECK_DATA_DIR 環境変数を使って場所を上書きできます。 このディレクトリーには config.yaml、SQLite データベース、そして保存された BMC 資格情報を保護 するために使用される暗号化キーファイルが含まれます。詳細は 設定 と ipmideck の実行 を参照してください。

サービスとして実行 (Linux)

端末での ipmideck start は 対話型コンソール を開き、セッションを閉じると停止します。 ipmideck をバックグラウンドで実行し続け、起動時に開始するには、代わりに systemd の下で実行します。 専用のユーザーを作成し、pipx でそのユーザー用に ipmideck をインストールし、そのユーザーが所有する データディレクトリーを与えます。
次にユニットを記述します。
有効化して起動します。
systemd の下では接続された端末がないため、ipmideck は対話型コンソールをスキップし、Docker コンテナーとまったく同じように、プレーンなログをジャーナル (journalctl -u ipmideck -f) に流します。 systemctl stop は SIGTERM を送信し、これがファン制御を BMC に返すのと同じ正常なシャットダウンを トリガーします。ヘッドレス / 非 TTY モード を参照してください。

次のステップ