pyghmi

GitHub地址
使用方法:
bin目录中有几个使用例子:

fakemc# 一个简单的伪造的BMC,支持一些IPMI 命令(用于测试)。 pyghmicons# 一个基于SOL重定向的通过IPMI的远程控制台。 pyghmiutil# 直接使用一些pyghmi用法的一个IPMI客户端(对测试和原型设计新功能也有用处)。 virshbmc# 使用libvirt的BMC模拟包装。

  1. BMC: 主板管理控制器。
  2. SOL: IPMI中SOL的使用
    Serial Over LAN (SOL) 功能非常有用。SOL 通过 IPMI 会话重定向本地串行接口,允许远程访问 Windows 的紧急事件管理控制台 (EMS) 特殊管理控制台 (SAC),或访问 LINUX 串行控制台。
  3. libvirt: Libvirt是用于管理虚拟化平台的开源的API,后台程序和管理工具。它可以用于管理KVM、Xen、VMware ESX,QEMU和其他虚拟化技术。这些API在云计算的解决方案中广泛使用。
【pyghmi】主板管理控制器BMC:
http://blog.163.com/coolland@126/blog/static/2085276420118254245670/
机箱入侵,就是比如机箱没有关好等状况。
扩展
如果你想支持新功能。你应该将你的方法添加到pyghmi/ipmi/command.py
你可以多看下get_usersset_power的方法,比如怎么使用内部机制去实现性功能。
并且你应该为你的方法写注释,文档。
有的时候你可能想去实现 OEM 类的代码。比如,检索固件版本信息,不属于标准IPMI的一部分,但是一些服务商(或者服务器)确实支持的通过自定义OEM命令。如果你有这样的需求,可以根据下面的步骤来实现:
  1. pyghmi/ipmi/oem/generic.py 文件中添加你的通用检索功能(存根)到OEMHandler类。并且,你应该为你的目的,参数和期望返回值写文档。
  2. oem 文件夹下的子目录中(比如 lenovo 子目录)实现这些特殊的方法。一个 OEM 文件夹会包含一个从 OEMHandler 继承的类,以及可选的用于运行和解析自定义OEM命令的helpers方法。
  3. pyghmi/ipmi/oem/lookup.py 中注册映射策略,pyghmi才能知道怎么通过你写的特定的OEM代码去联系BMC session。
一个好的测试新功能的方式是使用 bin/pyghmiutil。只是添加一个扩展的新功能实现(作为一个新命令)和从命令行调用它:
$ IPMIPASSWORD=passw0rd bin/pyghmiutil [BMC IP address] username my_new_feature_command

    推荐阅读