IPMI硬件管理 IPMI是一个开放的标准,是用于管理基于Intel架构服务器的工业标准,由英特尔、HP、NEC、DELL等公司制定。用户可以利用IPMI监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。2004年Intel发表了IPMI2。0的规格,能够向下相容IPMI1。0、1。5,新增了ConsoleRedirection,并可以通过以太网远程管理服务器。 IPMI主要的功能硬件监控(模块状态、传感器)远程控制(远程开机、关机、重启,Console)日志(硬件运行日志)配置BIOS、RAID列出所有相关硬件等IPMI操作方法 今天主要来说一下IPMI具体的使用操作方法,从常规的ipmitool命令行操作到Python脚本控制,基本能涵盖到日常运维所涉及的所有操作。 ipmitool是一种可用在linux系统下的命令行方式的ipmi平台管理工具,它支持ipmi2。0规范,通过它可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能。 命令行操作实例 进入BMCsh(ipmitool交互界面)ipmitoolIopenshellipmitoolhelpCommands:rawSendaRAWIPMIrequestandprintresponsei2cSendanI2CMasterWriteReadcommandandprintresponsespdPrintSPDinfofromremoteI2CdevicelanConfigureLANChannelschassisGetchassisstatusandsetpowerstatepowerShortcuttochassispowercommandseventSendpredefinedeventstoMCmcManagementControllerstatusandglobalenables 查看开关机状态ipmitoolpowerstatusChassisPowerison 开机关机ipmitoolpoweronipmitoolpoweroff 查看当前用户ipmitooluserlist2IDNameCallinLinkAuthIPMIMsgChannelPrivLimit1AdministratortruefalsetrueADMINISTRATOR2(EmptyUser)truefalsefalseNOACCESS 增加用户ipmitoolusersetname2test01ipmitoolusersetpassword2password123 查看BMCIP地址ipmitoollanprint2IPAddressSource:StaticAddressIPAddress:192。168。1。222SubnetMask:255。255。255。0MACAddress:38:ea:a7:a9:xx:xx 修改BMCIP地址ipmitoollanset2ipsrcstaticipmitoollanset2ipaddr192。168。1。1ipmitoollanset2netmask255。255。255。0ipmitoollanset2defgw192。168。1。254 查看日志ipmitoolsellist10c1107202206:47:24Temperature0x03UpperCriticalgoinghighAsserted10d1107202206:47:33Temperature0x03UpperCriticalgoinghighAsserted10e1107202206:48:57SystemACPIPowerState0xd5S4S5:softoffAsserted10f1108202200:46:40SystemACPIPowerState0xd5S0G0:workingAsserted1101108202201:52:23Memory0x40UncorrectableECCAsserted1111108202201:52:33Memory0x40UncorrectableECCAsserted1121114202206:48:58Temperature0x30UpperCriticalgoinghighAssertedipmitoolselhelpSELCommands:infocleardeletelistelistgetaddtimesavereadrawwriterawinterpret 查看FRU信息ipmitoolfrulistFRUDeviceDescription:BuiltinFRUDevice(ID0)ChassisType:RackMountChassisChassisSerial:BoardMfgDate:WedOct2120:00:002009BoardMfg:HPBoardProduct:ProLiantDL380pGen8BoardSerial:BoardPartNumber:653200B21ProductManufacturer:HPProductName:ProLiantDL380pGen8ProductPartNumber:653200B21ProductSerial:FRUDeviceDescription:BMCCONTROLLER(ID238)ProductManufacturer:HPEProductName:BMCCONTROLLERProductPartNumber:iLO4 设置为光盘启动ipmitoolchassisbootparamsetbootflagforcecdrombootparamsetbootflagdevice〔options。。。〕Legaldevicesare:none:Nooverrideforcepxe:ForcePXEbootforcedisk:ForcebootfromdefaultHarddriveforcesafe:ForcebootfromdefaultHarddrive,requestSafeModeforcediag:ForcebootfromDiagnosticPartitionforcecdrom:ForcebootfromCDDVDforcebios:ForcebootintoBIOSSetup 重启BMCipmitoolmcresetcold注:以上命令中均在本机执行,如果对网络中其它主机进行操作,需要指定BMC的IP地址、用户名和密码: HhostnameRemotehostnameforLANinterface UusernameRemotesessionusername PpasswordRemotesessionpasswordPython操作实例 安装所需的软件包(第三方),拿HPiLO示例pipinstallpythonhpilo 导入软件包,获取服务器物理状态coding:utf8importpprintimporthpiloilohpilo。Ilo(192。168。1。1,admin,password)healthsummaryilo。getembeddedhealth()〔healthataglance〕pprint。pprint(healthsummary) 获取IML日志:查看IML(IntegratedManagementlog)日志logsilo。getservereventlog()forloginlogs:print(log) 查看Event日志查看iLOEventlogeventsilo。getiloeventlog()foreventinevents:print(event) 主要方法: 方法 功能 getembeddedhealth() 获取服务器物理状态信息 presspwrbtn() 按一下电源键 holdpwrbtn() 长按电源键 resetrib() 重置ilo resetserver() 重启服务器 coldbootserver() 冷重启 warmbootserver() 热重启 getiloeventlog() 获取iloevent日志 getservereventlog() 获取IML日志