Skip to content
robnagler edited this page Jan 18, 2019 · 7 revisions

Dell Remote Access Controller with Lifecycle Controller (iDRAC/DRAC)

This document discusses configuring a m620 iDRAC 7 controller. There may be differences with various versions of firmware. We are using version 2.15.10.10 m620 iDRAC Lifecycle Controller firmware and 5.11.200.201510140002 m1000e Chassis Management Controller (CMC).

Web Interface

For individual DRACs

https://localhost:2008/start.html

CMC:

https://localhost:2000/cgi-bin/webcgi/main

iDRAC communication goes through CMC ethernet.

If you need to reboot on a Mac during an install, you type: fn-ctrl-alt-del.

Intent

The goal of this document is to help us understand how we are configuring our m1000e and m620 boxes with an emphasis on the iDRAC. Hopefully, you'll find it useful, too. YMMV.

There are many issues with the Dell tools, which are documented here. It's not clear why there are so many problems. The Dell documentation is voluminous and unclear at the same time. Here's a typical post (of a Dell employee) who ran into lots of problems, too. Hopefully, the following will save you time.

Also, be prepared for "not founds" when you click on links on the Dell site. Download the PDF instead of trying to browse the docs. The manuals we use are located in the manuals folder of this wiki. There's no way to list them.

Basic Config

The m620 is a blade in a m1000e enclosure. The Chassis Management Controller (CMC) firmware (version 5.11) has a feature for setting up the network ports of inserted blades. See the discussion here.

For this document, we'll assume our iDRAC is at 192.168.1.233 on a secure network, which is tunneled to your desktop via port 2033.

Also, we'll assume the root password for the iDRAC is stored in somefile (see below). The racadm program (below) would otherwise require you supply the password on the command line, which means it will show up in your shell history. Not a good thing.

idracadm7 (racadm)

racadm is a program and a protocol and a command. This makes it a bit confusing. You'll see references to the program a lot, but you don't need the program to get started. You can just execute it via ssh to the iDRAC. For example,

$ ssh [email protected]
[email protected]'s password:
/admin1-> racadm
racadm>>getsysinfo

racadm getsysinfo

RAC Information:
RAC Date/Time           = Wed Dec 30 23:01:52 2015

Firmware Version        = 2.15.10.10
Firmware Build          = 08
Last Firmware Update    = 12/08/2015 12:11:51
Hardware Version        = 0.01
MAC Address             = F8:DB:88:74:7C:8D
[...snip...]

The first thing you should change the default password from calvin to whater you like, e.g.

racadm>>config -g cfgUserAdmin -o cfgUserAdminPassword -i 2 SOMEPASS

We do this in an ssh session to avoid the new password showing up in the command (bash) history on your Linux system when you are using racadm from the command line.

Dell System Update (install racadm program)

To install racadm on your Linux box, you can get it from the (Dell System Update repo)[http://linux.dell.com/repo/hardware/dsu], which has a nice curl installer.

If you are running on CentOS 6.x, you'll need to first install a backwards compatible version of openssl:

# yum install -y openssl098e.x86_64

The curl installer puts all the files in /opt/dell so it's safe to do this:

# curl -L -s -S http://linux.dell.com/repo/hardware/latest/bootstrap.cgi | bash

The idrac7 commands are not installed with this command so you'll need to:

# yum install srvadmin-idrac7 srvadmin-idracadm7

You'll want the path set for your session:

$ export PATH="/opt/dell/srvadmin/bin:$PATH"

There are actually a number of racadm commands. You probably want to use idracadm7, since it is compatible with the m620 with the 2.15 firmware.

One handy feature of the ssh racadm is that you get autocomplete with tab. It's also faster, because it doesn't have to handshake with each call. idracadm7 is needed for scripting, of course, so you can experiment with the interactive version until you get the hang of what you want to do.

Wrapping idracadm7

Here's how you use idracadm7:

$ idracadm7 -r 192.168.1.233 -u root -p "$(cat somefile)" set iDRAC.IPMILan.Enable 1
Password:
Security Alert: Certificate is invalid - self signed certificate
Continuing execution. Use -S option for racadm to stop execution on
certificate-related errors.
[Key=iDRAC.Embedded.1#IPMILan.1]
Object value modified successfully

You have to pass the password on the comnand line. Not so good so at least we put it in a file so it doesn't show in ~/.bash_history. However, the whole command is rather awkward, especially switching between different IPs to talk to different blades.

Note also that the certificate built into the iDRAC is invalid, because it is self-signed. This output is annoying, and the -S flag doesn't work in the version we're using. It simply prints:

$ idracadm7 -S -r 192.168.1.233 -u root -p "$(cat somefile)" get iDRAC.IPMILan
Security Alert: Certificate is invalid - self signed certificate
Racadm not continuing execution of the command.
ERROR: Unable to connect to RAC at specified IP address.

Jobs

The iDRAC uses a concept of "jobs" to "commit" changes. A job is really a command to tell the Lifecycle Controller to do something after the machine boots. As a part of the job, you'll ask the box to reboot (pwrcycle). You can do this as a seperate step if you like. The name of the job is always fixed, in this case this executes any BIOS.Setup commands:

$ idrac 1 jobqueue create BIOS.Setup.1-1 -r pwrcycle -s TIME_NOW -e TIME_NA
RAC1024: Successfully scheduled a job.
Verify the job status using "racadm jobqueue view -i JID_xxxxx"
command.
Commit JID = JID_515145731719
Reboot JID = RID_515145732427

You can then check the jobqueue with:

$ idrac 1 jobqueue view
[Job ID=JID_515145731719]
Job Name=Configure: BIOS.Setup.1-1
Status=Running
Start Time=[Now]
Expiration Time=[Not Applicable]
Message=[PR20: Job in progress]
Percent Complete=[34]
----------------------------------------------------------
[Job ID=RID_515145732427]
Job Name=Reboot: Power cycle
Status=Reboot Completed
Start Time=[Now]
Expiration Time=[Not Applicable]
Message=[RED030: Reboot is complete.]
Percent Complete=[NA]
----------------------------------------------------------

If the RAID config is not cleared properly, the boot will stop at:

PowerEdge Expandable RAID Controller BIOS
Copyright(c) 2011 LSI Corporation
Press <Ctrl><R> to Run Configuration Utility
HA -0 (Bus 2 Dev 0) PERC H310 Mini
FW package: 20.11.0-0002


All of the disks from your previous configuration are gone.  If this is
an unexpected message, then please power off your system and check your cables
to ensure all disks are present.
Press any key to continue, or 'C' to load the configuration utility.

There doesn't seem to be a way around clicking space, because the lifecycle controller job execution only happens after the RAID controller boots. This happens for refurbished computers, but not new ones.

You will have to reset the RAID controller before continuing.

Note that when the boot is stuck you won't see any errors in the output of jobqueue view. You'll just see that the reboot is complete and the task is scheduled:

$ idrac 1 jobqueue view
-------------------------JOB\ QUEUE------------------------
[Job ID=JID_515145731719]
Job Name=Configure: BIOS.Setup.1-1
Status=Scheduled
Start Time=[Now]
Expiration Time=[Not Applicable]
Message=[JCP001: Task successfully scheduled.]
Percent Complete=[0]
----------------------------------------------------------
[Job ID=RID_515145732427]
Job Name=Reboot: Power cycle
Status=Reboot Completed
Start Time=[Now]
Expiration Time=[Not Applicable]
Message=[RED030: Reboot is complete.]
Percent Complete=[NA]
----------------------------------------------------------

The maximum number of user sessions is reached

$ idrac 1 racreset

Clearing the Job Queue

If you get into this state, you will have to clear the jobqueue with:

$ idrac 1 jobqueue delete --all
$ sleep 120
$ idrac 1 racreset

We don't have a console to see this problem, because the serial console hasn't been setup. However, you can use the Java console which works pretty well.

hwinventory

ssh root@ racadm hwinventory

Set System Host Name

Windows will set this to:

racadm get System.ServerOS
[Key=System.Embedded.1#ServerOS.1]
HostName=DESKTOP-34PH90T
OSName=Windows 10
#OSVersion=10.0
#ServerPoweredOnTime=0

You can reset it this way:

set System.ServerOS.HostName ""
set System.ServerOS.OSName ""

References

http://www.gooksu.com/2015/04/27/racadm-quick-dirty-cheatsheet/

Clone this wiki locally