一、ipmitool簡介
IPMI(Intelligent Platform Management Interface)智能平台管理接口
1、IPMI的核心是一個專用芯片/控制器(叫做服務器處理器或基板管理控制器(BMC)),其並不依賴於服務器的處理器、BIOS或操作系統來工作,可謂非常地獨立,是一個單獨在系統內運行的無代理管理子系統。
2、IPMI功能:
監控服務器的物理健康特征,如溫度、電壓、風扇工作狀態、電源狀態等;
可以通過串口、Modem以及Lan等遠程環境管理服務器系統,如遠程開關機;
3、ipmitool 是一種可用在 linux 系統下的命令行方式的 ipmi 平台管理工具,它支持 ipmi 1.5 規范(最新的規范為 ipmi 2.0),通過它可以實現獲取傳感器的信息、顯示系統日志內容、網絡遠程開關機等功能。
二、使用
#!/bin/bash
#FRU(Field Replace Unit) 現場可更換單元
HOST=$1 USER=$2 PASSWD=$3 function getinfo() { # 1. 獲取到服務器的網絡配置信息 echo -e "\n\n=======Networking Configurations:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan print # 2.獲取到服務器的溫度信息 echo -e "\n\n=======Ambient Temprature:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Ambient Temp" # 3.獲取到服務器的功率信息 echo -e "\n\n=======System Level:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "System Level" # 4.獲取到服務器的序列號信息 echo -e "\n\n=======Serial Number(Fru):" ipmitool -I lan -H $HOST -U $USER -P $PASSWD fru # 5.獲取到服務器的MAC echo -e "\n\n=======Mac Address(only Dell):" ipmitool -I lan -H $HOST -U $USER -P $PASSWD delloem mac # 6.獲取到服務器的資產號信息 echo -e "\n\n=======Serial Number(Fru):" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "System Level" # 7.獲取到服務器的管理卡的時間 echo -e "\n\n=======Date and Time:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sel time get # 8.查看管理卡配置模式 echo -e "\n\n=======Lan set Mode:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD delloem lan get # 9.查看SOL波特率 echo -e "\n\n=======Volatile Bit Rate (kbps):" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol info 1 } function operation() { # 1.服務器開機、關機、重啟 echo -e "\n\n=======Power:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD power ipmitool -I lan -H $HOST -U $USER -P $PASSWD power status # 2.服務器添加用戶、設置密碼、授予權限 echo -e "\n\n=======USER:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD user list 1 ipmitool -I lan -H $HOST -U $USER -P $PASSWD user set name 10 test1 ipmitool -I lan -H $HOST -U $USER -P $PASSWD user set password 10 test1pwd ipmitool -I lan -H $HOST -U $USER -P $PASSWD user enable 10 ipmitool -I lan -H $HOST -U $USER -P $PASSWD user list 1 # 1-CALLBACK ,2-USER ,3-OPERATOR ,4-ADMNISTRATOR echo -e "\n\n=======User privilage:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD user priv 10 4 1 ipmitool -I lan -H $HOST -U $USER -P $PASSWD user list 1 # 3.管理卡IP配置模式轉換(DHCP/靜態IP) echo -e "\n\n=======OOB IP Mode:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan set 1 ipsrc ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan set 1 ipsrc static ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan print # 4.管理卡修改IP地址 echo -e "\n\n=======Set IP:" read -p "modify oob ip, please use the current network : " oobip read -p "modify oob netmask : " netmask read -p "modify oob gateway : " oobgw ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan set 1 ipaddr $oobip ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan set 1 netmask $netmask ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan set 1 defgw ipaddr $oobgw ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan print # 5.管理卡配置模式轉換(獨立/共享) 僅dell echo -e "\n\n=======Lan Mode:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD delloem lan #ipmitool -I lan -H HOST−U USER -P $PASSWD delloem lan set dedicated # 6.設置SOL波特率(波特率是傳輸通道頻寬的指標。) echo -e "\n\n=======Sol volatile-bit-rate:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol set non-volatile-bit-rate 115.2 1 ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol info 1 ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol set non-volatile-bit-rate 57.6 1 ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol info 1 # 7.SOL模式開啟、關閉 echo -e "\n\n=======Sol enable and disable:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol set enabled true 1 ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol info 1 ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol set enabled false 1 ipmitool -I lan -H $HOST -U $USER -P $PASSWD sol info 1 } function extrainfo() { echo -e "\n\n\n=======Extra infomation:" # cpu信息 echo -e "\n\n=======cpu型號:" echo -e "\n\n=======cpu物理個數:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr elist | grep 'Status' #華為提供,貌似不准確 echo -e "\n\n=======cpu當前頻率:" #內存信息 echo -e "\n\n=======內存型號:" echo -e "\n\n=======內存數量:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr elist | grep 'DIMM' #硬盤信息 #echo -e "\n\n=======硬盤品牌:" #echo -e "\n\n=======硬盤SN:" (在HDM管理頁面的系統整體概況有服務器SN序列號和磁盤序列號) #echo -e "\n\n=======硬盤型號:" #電力 echo -e "\n\n=======服務器當前整體功耗:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Pwr" echo -e "\n\n=======服務器交流實際供電電壓:" #不支持或未找到 echo -e "\n\n=======服務器直流3.3V,5V和12V實際供電電壓:" #風扇 echo -e "\n\n=======風扇數量和轉速:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Fan" #溫度 echo -e "\n\n=======服務器進風口溫度:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Inlet" echo -e "\n\n=======服務器出風口溫度:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Exhaust Temp" echo -e "\n\n=======CPU當前溫度:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sdr get "Temp" #狀態:基於收集信息異常狀態的記錄及展示 echo -e "\n\n=======基於收集信息異常狀態的記錄及展示:" #網絡:Mac地址 echo -e "\n\n=======遠程管理卡以及主板上所有網口的MAC地址:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan print |grep "MAC Address" #時間:收集管理卡當前時鍾信息,以“年月日時分秒”格式顯示。 echo -e "\n\n=======收集管理卡當前時鍾信息,以“年月日時分秒”格式顯示。:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sel time get #事件:異常事件、操作事件、登錄事件記錄 echo -e "\n\n=======異常事件、操作事件、登錄事件記錄:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD sel list } function extraop() { #通過網絡,命令行模式完成以下功能: #1, 指定特定端口PXE啟動 echo -e "\n\n=======指定特定端口PXE啟動:" ipmitool -I lan -H $HOST -U $USER -P $PASSWD chassis bootdev pxe #不能指定特定端口,端口指定可借助racadm等工具實現,網卡的pxe功能需要在bios中開啟 #2, 可通過管理卡啟動KVM(無需登錄web界面),並有相關的權限區分(可看,可操作等多種權限) echo -e "\n\n=======可通過管理卡啟動KVM(無需登錄web界面),並有相關的權限區分(可看,可操作等多種權限):" #Need config SSO, 虛擬控制台或者VNC免登陸方式 #可以設置管理卡的時鍾、使用“年月日時分秒”格式。 echo -e "\n\n=======可以設置管理卡的時鍾、使用 年月日時分秒 格式。" #dell反饋管理卡沒有時間設置,只有BIOS時間和NTP ipmitool -I lan -H $HOST -U $USER -P $PASSWD sel time set } echo >$HOST-report.txt getinfo 2>&1 |tee -a $HOST-report.txt operation 2>&1 |tee -a $HOST-report.txt extrainfo 2>&1 |tee -a $HOST-report.txt extraop 2>&1 | tee -a $HOST-report.txt