IPMItool Raw Commands About Dell PowerEdge System Model Name, Operating System Name and DNS Hostname
Dell PowerEdge systems are “Intelligent Platform Management Interface (IPMI)” compliant systems. IPMItool software provides a set of command line options and arguments to provide both local and remote access to Dell PowerEdge systems (Local Management and Remote Management). Additionally IPMItool also provides raw commands to access hardware functions for additional IPMI compliant system management capabilities. Example IPMItool commands are “chassis power on”, “chassis power cycle”, “list system event log” and so on.
IPMI specification URL: http://www.intel.com/design/servers/ipmi/spec.htm
We can use IPMItool commands to manage a Dell PowerEdge system either locally (from the server) or remotely (from another system on which IPMItool is available). Detailed information about IPMI and IPMItool is available on the Internet. Here we do not explain all IPMItool commands usage.
Dell PowerEdge system with an Integrated Dell Remote Access Controller (iDRAC) provides a powerful, easy-to-use local and remote management and configuration options to support IPMI technology.
Using PowerEdge R710 Server as an Example
Here we are considering a PowerEdge R710 server as an example to explain how to use IPMItool raw commands to get the details such as system model name, operating system in use (already installed) and the (DNS) host name of the system.
The following is an iDRAC session on PowerEdge R710 server.
We can observe the following from the above PER710 system iDRAC session screenshot:
1) System model name is PowerEdge R710
2) iDRAC IP is 192.168.0.253
3) Operating system in use or installed is Microsoft Windows Server 2003 Enterprise
4) (DNS) hostname is per710mdev
Assume that we are using another “64bit CentOS v6.3 Linux host” with its host IP as 192.168.0.2.
[root@localhost ravi_a]#
[root@localhost ravi_a]# cat /etc/redhat-release
CentOS release 6.3 (Final)
[root@localhost ravi_a]#
[root@localhost ravi_a]# uname -a
Linux localhost.localdomain 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ravi_a]#
[root@localhost ravi_a]#
[root@localhost ravi_a]# /sbin/ifconfig em1
em1 Link encap:Ethernet HWaddr 14:FE:B5:CA:AC:8F
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::16fe:b5ff:feca:ac8f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:84 errors:0 dropped:0 overruns:0 frame:0
TX packets:129 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7585 (7.4 KiB) TX bytes:13763 (13.4 KiB)
Interrupt:36 Memory:e6000000-e6012800
[root@localhost ravi_a]#
[root@localhost ravi_a]#
Let us use IPMItool raw commands from this Linux host to confirm the mentioned system model name, operating system name and (DNS) host name (PER710 system iDRAC session screeshot) using PER710 system's iDRAC IP 192.168.0.253 with IPMItool raw command and not using PER710 system’s iDRAC session/GUI.
IPMItool Raw Command With iDRAC IP 192.168.0.253 (Remote Management)
------------------------------------------------------------------------------
We need to make sure that IPMItool command/software is available to use as follows. We may have to install IPMITool rpm, if not available, from the required “64bit CentOS v6.3 Linux Distribution” installation media or download required IPMItool rpm from the Internet.
[root@localhost ravi_a]#
[root@localhost ravi_a]# rpm -q ipmitool
ipmitool-1.8.11-13.el6.x86_64
[root@localhost ravi_a]#
[root@localhost ~]#
[root@localhost ~]# whereis ipmitool
ipmitool: /usr/bin/ipmitool /usr/share/ipmitool /usr/share/man/man1/ipmitool.1.gz
[root@localhost ~]#
[root@localhost ~]# which ipmitool
/usr/bin/ipmitool
[root@localhost ~]#
Now run IPMI raw command as follows to get the PowerEdge system model name.
[root@localhost ravi_a]#
[root@localhost ravi_a]# ipmitool -H 192.168.0.253 -U root -P calvin raw 0x06 0x59 0x00 0xd1 0x00 0x00
11 00 00 0f 50 6f 77 65 72 45 64 67 65 20 52 37
31 30
[root@localhost ravi_a]#
[root@localhost ravi_a]#
The output of the first IPMItool raw command contains ASCII hex decimal numbers. The first three hex decimal numbers 11 00 00 have predefined meaning with respect to IPMItool raw command usage on Dell PowerEdge systems. Next hex decimal number 0f (decimal value 15, including one NULL character) indicates that the system model name is a 15 character alpha numeric string, starting from next hex decimal number 50 (ASCII code) to last hex decimal number 30 (ASCII code). That means, fourteen ASCII codes”50 6f 77 65 72 45 64 67 65 20 52 37 31 30” form system model name, which is “PowerEdge R710” (includes one space character).
Now run another IPMI raw command as follows to make sure that system model name ends with ASCII code 00 and no another IPMItool raw command has to be executed for the system model name.
[root@localhost ravi_a]#
[root@localhost ravi_a]# ipmitool -H 192.168.0.253 -U root -P calvin raw 0x06 0x59 0x00 0xd1 0x01 0x00
11 01 00
[root@localhost ravi_a]#
[root@localhost ravi_a]#
The output of the second IPMItool raw command contains ASCII hex decimal numbers. As mentioned, the first two hex decimal numbers 11 01 have predefined meaning with respect to IPMItool raw command usage on Dell PowerEdge systems. Next hex decimal number 00 indicates that no more ASCII codes exist for system model name and we do not have to run another IPMItool command for the system model name.
In this case, if we don’t observe 00 in the second IPMItool raw command, then we have to execute last (or third) IPMItool raw command as follows.
[root@localhost ravi_a]# ipmitool -H 192.168.0.253 -U root -P calvin raw 0x06 0x59 0x00 0xd1 0x02 0x00
Now we know that we can easily get required system model name “PowerEdge R710” using three IPMItool raw commands without PER710 system’s iDRAC session.
Similarly we can use the following three IPMItool raw commands to get the operating system name.
ipmitool -H 192.168.0.253 -U root -P calvin raw 0x06 0x59 0x00 0x03 0x00 0x00
ipmitool -H 192.168.0.253 -U root -P calvin raw 0x06 0x59 0x00 0x03 0x01 0x00
ipmitool -H 192.168.0.253 -U root -P calvin raw 0x06 0x59 0x00 0x03 0x02 0x00
Explanation about the output of the mentioned three IPMItool raw commands for operating system name is same as the explanation for the output of the three IPMItool raw commands for system model name.
Similarly we can use following three IPMItool raw commands to know (DNS) host name.
ipmitool -H 192.168.0.253 -U root -P calvin raw 0x06 0x59 0x00 0x02 0x00 0x00
ipmitool -H 192.168.0.253 -U root -P calvin raw 0x06 0x59 0x00 0x02 0x01 0x00
ipmitool -H 192.168.0.253 -U root -P calvin raw 0x06 0x59 0x00 0x02 0x02 0x00
Explanation about the output of the mentioned three IPMItool raw commands for (DNS) host name is same as the explanation for the output of the three IPMItool raw commands for system model name.
Note: The attached file find_poweredge_system_model_os_DNS_host_names_with_iDRAC_IP.txt actually a Python file. So please treat this file as find_poweredge_system_model_os_DNS_host_names_with_iDRAC_IP.py Python file.
The outputofabovementionedIPMItoolrawcommandscontainsASCIIhexdecimalnumbers,whichisnoteasilyreadable. AbovementionedPythonprogram decodestheseASCIIhexdecimalnumbersto"EnglishAlphaNumeric"charactersforustoeasilyunderstand.
The attached Python program find_poweredge_system_model_os_DNS_host_names_with_iDRAC_IP.py executes the explained IPMItool raw commands and displays system model name, operating system and (DNS) host name in sequence. The program output is easy to read as it does not display ASCII hex decimal numbers.
[root@localhost ravi_a]# ./find_poweredge_system_model_os_DNS_host_names_with_iDRAC_IP.py
System Model Name = PowerEdge R710
Operating System Name = Microsoft Windows Server 2003, Enterprise Edit
System (DNS) Host Name = per710mdev
[root@localhost ravi_a]#