简介:Pyghmi是一个纯Python(主要是IPMI)服务器管理库。IPMI(Intelligent Platform Management Interface,智能平台管理接口)是一种开放的标准,旨在帮助系统管理员在本地和远程管理服务器系统。而IPMITool就是一个基于IPMI接口的应用程序,它允许管理员执行各种IPMI系统管理功能。使用IPMITool,我们可以进行许多管理任务,比如查询硬件状态信息(如CPU温度、电源状态、风扇转速等)、重启系统、查看系统日志等。而且,IPMITool的另一个强大之处在于,它可以从操作系统层面直接查询和设置BIOS参数,无需进入BIOS界面,大大方便了管理员的工作。
历史攻略:
国产浪潮服务器:风扇免手动调节脚本
Python:requests + BMC 获取和设置服务器风速
Python:requests + bmc开机、关机、优雅重启、强制重启
从入门到精通:IPMITool 的详尽指南
案例源码:
# -*- coding: utf-8 -*-
# time: 2024/03/23 11:36
# file: ipmi_demo.py
# 公众号: 玩转测试开发
from pyghmi.ipmi import command
# BMC的IP地址、用户名和密码
bmc_ip = '10.11.12.13'
username = 'admin'
password = 'admin'
# 建立IPMI连接
ipmi_conn = command.Command(bmc_ip, username, password)
# # case1 - 获取所有传感器数据
# sensor_data = ipmi_conn.get_sensor_data()
#
# for sensor in sensor_data:
# print(sensor)
# case2 - 获取
print(ipmi_conn.get_power()) # 获取电源状态
print(ipmi_conn.get_system_configuration()) # 获取系统配置
print(ipmi_conn.get_hostname()) # 获取host名称
print(ipmi_conn.get_health()) # 获取健康状态
print(ipmi_conn._get_power_state())
# case3 - 电源操作
"""
* on
* off -- Request system turn off without waiting for OS to shutdown
* shutdown -- Have system request OS proper shutdown
* reset -- Request system reset without waiting for OS
* boot -- If system is off, then 'on', else 'reset'
"""
print(ipmi_conn.set_power("on")) # return {'pendingpowerstate': 'on'}
# print(ipmi_conn.set_power("off")) # return {'pendingpowerstate': 'off'}
# print(ipmi_conn.set_power("shutdown"))
# print(ipmi_conn.set_power("reset"))
# print(ipmi_conn.set_power("boot"))
运行结果:
结论:pyghmi可以更优雅的进行BMC带外管理,并且获取相关传感器数据更直观便捷,优先推荐开源模块的形式。