banner
云野阁

云野阁

闲云野鹤,八方逍遥

LinuxによるIPMIのシミュレーション実装

環境準備:#

(1)スクリプトを使用して docker、docker-compose をインストール

bash <(curl -sSL https://linuxmirrors.cn/docker.sh)

(2)イメージの加速を設定

vi /etc/docker/daemon.json

{
  "data-root": "/data/dockerData",
  "registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com",
    "https://huecker.io",
    "https://docker.rainbond.cc",
    "https://dockerhub.timeweb.cloud",
    "https://dockerhub.icu",
    "https://docker.registry.cyou",
    "https://docker-cf.registry.cyou",
    "https://dockercf.jsdelivr.fyi",
    "https://docker.jsdelivr.fyi",
    "https://dockertest.jsdelivr.fyi",
    "https://mirror.aliyuncs.com",
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.iscas.ac.cn",
    "https://docker.rainbond.cc",
    "https://docker.kubesre.xyz"],
    "log-driver":"json-file",
    "log-opts":{"max-size" :"50m","max-file":"3"}
}

(3)docker サービスを起動

systemctl start docker
systemctl enable docker
systemctl status docker

IPMI シミュレーターコンテナのデプロイ#

(1)IPMI シミュレーターの公式リポジトリからソースパッケージをダウンロード

(2)ダウンロードが完了し解凍後、Dockerfile ファイルを修正

FROM alpine
LABEL maintainer="[email protected]"

RUN apk --update --no-cache add openipmi-lanserv

# IPMIシミュレーターインスタンスの状態情報を永続化するために使用されるディレクトリを作成します。
RUN mkdir -p /tmp/chassis

COPY . /tmp/ipmisim

# 新規追加部分
RUN chmod +x /tmp/ipmisim/bin/chassis_control.sh
# 新規追加部分
EXPOSE 623

EXPOSE 623/udp

CMD ["ipmi_sim", "-n", "-c", "/tmp/ipmisim/lan.conf", "-f", "/tmp/ipmisim/sim.emu"]

(3)イメージファイルを生成し、コンテナを実行

docker build -f Dockerfile -t vaporio/ipmi-simulator .
docker run -d --name ipmi-simulator --restart always -p 623:623/udp -p 623:623/tcp vaporio/ipmi-simulator

(4)ファイアウォールポリシーを設定

firewall-cmd --add-port=623/tcp --permanent
firewall-cmd --add-port=623/udp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

(5)ホスト上でシミュレートされた IPMI のシャーシと電源の状態を確認

 ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN chassis status

System Power : on
Power Overload : false
Power Interlock : inactive
Main Power Fault : false
Power Control Fault : false
Power Restore Policy : always-off
Last Power Event :
Chassis Intrusion : inactive
Front-Panel Lockout : inactive
Drive Fault : false
Cooling/Fan Fault : false

拡張コマンド:

IPMI デバイスの電源状態

#オン
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN chassis power on
#オフ
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN chassis power off
#リセット
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN chassis power reset
#シャーシを識別(インジケータを点滅させる)
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN chassis identify 5

システム状態を読み取る

#システムセンサーを表示
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN sensor list
#システムの現在の代替デバイスリストを表示
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN fru list
#システムSDRリポジトリデバイスリストを表示
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN sdr list
#システムプラットフォームイベントフィルタのリストを表示
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN pef filter list
#システムプラットフォームポリシーリストを表示
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN pef policy list

システムログ

#すべてのシステムイベントログを表示
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN sel elist
#現在のBMCの時間を表示
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN sel time get
#現在のBMCの時間を変更
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN sel time set "09/25/2024 18:29:20"

システム関連

#BMC情報を確認
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN bmc info
#BMCを冷却リセット
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN bmc reset cold
#BMCを起動
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN bmc reset warm
#システムのデフォルトチャネルを表示
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN channel info
#すべてのユーザーを表示
ipmitool -I lan -H ホストip -p 623 -U ADMIN -P ADMIN user list
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。