The Intelligent Platform Management Interface (IPMI) is a standardized computer system interface used by system administrators to manage a computer system and monitor its operation. IPMI can be used to remotely power cycle a server, remotely connect to its KVM or serial interface and perform other administrative related functionalities. The standard is supported by most hardware vendor (Dell, HP, NEC, Intel, SuperMicro, etc.) and it is found on several server platforms under different name (ILOM, BMC, DRAC, etc.).
Rocks by default include openIPMI an Open Source command line implementation of the standard on all the nodes and it is possible to create the initial configuration of the devices leveraging Rocks database and Rocks command line.
Rocks uses its data base to keep configuration information regarding the various IPMI devices. All interfaces defined in the rocks database named "ipmi" are treated as IPMI devices and not as standard ethernet devices.
It is good practice to define a network to allocate all the IPMI devices (although not necessary). IPMI network are sometimes separated from other network for security purposes, other times they can share the existing network infrastructure to save money. The network configuration and design is behind the scope of this tutorial. We simply assume All the nodes are connected to the admin network (10.10.0.0/255.255.0.0) and the frontend has some routing access to it. In the following example can be used to define the admin network in the rocks DB.
# rocks add network admin subnet=10.10.0.0 netmask=255.255.0.0 mtu=1500
To configure a IPMI device on a node called compute-0-0, you should run:
# rocks add host interface compute-0-0 ipmi ip=10.10.255.254 name=ipmi-compute-0-0 subnet=admin # rocks set host interface channel compute-0-0 ipmi 1
The channel is used to specify which comunication interface should be configured. Each IPMI device supports multiple comunication devices (Ethernet/IP, serial ports, etc.) so it is necessary to identify which one is associated with the Ethernet interface to specify it with the rocks set host interface channel command. Different hardware can have different channels for the same type of device. To this purpose it is possible to use ipmitool command repeatedly with different channel numbers, untill the Medium info display 802 LAN, as in the following example:
# ipmitool channel info 1 Channel 0x1 info: Channel Medium Type : 802.3 LAN Channel Protocol Type : IPMB-1.0 ...
The admin password is set by default to "admin", it is possible to change it using the rocks attribute "ipmi_password". In most of the IPMI devices the admin user ID is equal to 1. If a device set up in a different way it is possible to set the attribute "ipmi_admin_user_number" and change this default behavior.
The command rocks sync network compute-0-0-0 will create a script on compute-0-0-0 in /etc/sysconfig/ipmi which should be executed manually on the node to finalize the configuration.
# rocks sync host network compute-0-0 # ssh compute-0-0 # bash /etc/sysconfig/ipmi
After this your IPMI interface should be properly configured. To validate your configuration you can use the ipmitool command from your frontend (or from the node which has access to the admin network) as shown in the following example:
ipmitool -H 10.10.255.254 -U ADMIN -P admin power status
To power off compute-0-0, execute:
# ipmitool -H 10.10.255.254 -U ADMIN -P admin power off
To power compute-0-0 back on, execute:
# ipmitool -H 10.10.255.254 -U ADMIN -P admin power on
There are several more management tasks you can perform with ipmitool. See the man page for ipmitool for more details.