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: ./dataipmideck を実行するディレクトリーからの相対パス。
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 stopSIGTERM を送信し、これがファン制御を BMC に返すのと同じ正常なシャットダウンを トリガーします。ヘッドレス / 非 TTY モード を参照してください。

次のステップ