Skip to main content

Pure python IPMI library

Project description

BuildStatus PyPiVersion Documentation Status Python versions Coveralls CodeClimate Codacy Badge


  • native RMCP interface
  • legacy RMCP interface (using ipmitool)
  • IPMB interface (using the Total Phase Aardvark)

Tested Devices

  • Kontron mTCA Carrier Manager
  • Kontron CompactPCI boards
  • Pigeon Point Shelf Manager
  • HPE iLO3/iLO4


For IPMB interface a Total Phase Aardvark is needed.


Using pip

The recommended installation method is using pip:

pip install python-ipmi

Manual installation

Download the source distribution package for the library. Extract the the package to a temporary location and install:

python install


You can find the most up to date documentation at:


Below is an example that shows how to setup the interface and the connection using the ipmitool as backend with both network and serial interfaces.

Example with lan interface:

import pyipmi
import pyipmi.interfaces

# Supported interface_types for ipmitool are: 'lan' , 'lanplus', and 'serial-terminal'
interface = pyipmi.interfaces.create_interface('ipmitool', interface_type='lan')

connection = pyipmi.create_connection(interface) = pyipmi.Target(0x82)[(0x81,0x20,0),(0x20,0x82,7)])

connection.session.set_session_type_rmcp('', port=623)
connection.session.set_auth_type_user('admin', 'admin')


ipmitool command:

ipmitool -I lan -H -p 623 -U "admin" -P "admin" -t 0x82 -b 0 -l 0 raw 0x06 0x01

Example with serial interface:

import pyipmi
import pyipmi.interfaces

interface = pyipmi.interfaces.create_interface('ipmitool', interface_type='serial-terminal')

connection = pyipmi.create_connection(interface) = pyipmi.Target(0xb2)

# set_session_type_serial(port, baudrate)
connection.session.set_session_type_serial('/dev/tty2', 115200)


ipmitool command:

ipmitool -I serial-terminal -D /dev/tty2:115200 -t 0xb2 -l 0 raw 0x06 0x01


Python 2.7 is currently supported. Python 3.x support is in beta


Contributions are always welcome. You may send patches directly (eg. git send-email), do a github pull request or just file an issue.

  • respect the coding style (eg. PEP8),
  • provide well-formed commit message (see this blog post.)
  • add a Signed-off-by line (eg. git commit -s)


This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for python-ipmi, version 0.4.2
Filename, size File type Python version Upload date Hashes
Filename, size python-ipmi-0.4.2.tar.gz (77.0 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page