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