HP Integrity iLO 3 Operations Guide

you to write a script for one iLO 3, and use it to apply the same commands to additional iLO 3s.
Scripting tools have capabilities that enable you to do the following:
Write scripts that make decisions based on the output of commands
Use variables in the script to customize it for each target automatically
Compensate for delays in output
Scripting tools and the command-line interfaces enable you to carry out commands to multiple iLO
3s such as setting the IP address on 10 iLO 3s pulled from a list of 10 IP addresses read from a
file local to your script. To automatically administer any part of the system during any stage of its
operation, you can use the scripting tool to log in to iLO 3, access the console, and send and
receive commands in UEFI or the operating system.
NOTE: This guide is not meant as a substitute for instruction on various scripting tools that are
available for automating command-line interfaces. The iLO 3 MP TUI (when used with command-line
arguments) was created with these types of scripting tools in mind to facilitate powerful automation
capabilities.
Expect script example
The following provides a simple Expect script example with no timeouts and no error checking
using Telnet instead of SSH.
#!/usr/local/bin/expect -f
#
# (Portions of) this Expect script (were) was generated by autoexpect on
# Tue Nov 21 08:45:11 2006
# Expect and autoexpect were both written by Don Libes, NIST.
#
# Note that autoexpect does not guarantee a working script. It
# necessarily has to guess about certain things. Two reasons a script
# might fail are:
#
# 1) timing - A surprising number of programs (rn, ksh, zsh, telnet,
# etc.) and devices discard or ignore keystrokes that arrive "too
# quickly" after prompts. If you find your new script hanging up at
# one spot, try adding a short sleep just before the previous send.
# Setting "force_conservative" to 1 makes Expect do this
# automatically - pausing briefly before sending each character. This
# pacifies every program I know of. The -c flag makes the script do
# this in the first place. The -C flag allows you to define a
# character to toggle this mode off and on.
set force_conservative 0 ;# set to 1 to force conservative mode even if
;# script wasn't run conservatively originally
if {$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- $arg
}
}
#2) differing output - Some programs produce different output each time
# they run. The "date" command is an obvious example. Another is
# ftp, if it produces throughput statistics at the end of a file
# transfer. If this causes a problem, delete these patterns or replace
# them with wildcards. An alternative is to use the -p flag (for
# "prompt") which makes Expect only look for the last line of output
# (i.e., the prompt). The -P flag allows you to define a character to
# toggle this mode off and on.
#
# Read the man page for more info.
Text user interface 49