HP Scripting Toolkit for Linux User Guide Abstract This document provides information about the Scripting Toolkit for Linux utilities and how best to use the Scripting Toolkit for Linux to configure HP ProLiant servers and BladeSystem infrastructure in a Linux environment. This document is intended for IT experts with experience in scripting operating system installations and configuring HP ProLiant servers and BladeSystem infrastructure.
Notices © Copyright 2005, 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. The only warranties for HP products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. HP shall not be liable for technical or editorial errors or omissions contained herein. Confidential computer software.
Contents 1 Introduction...............................................................................................7 Scripting Toolkit........................................................................................................................7 Minimum requirements..............................................................................................................7 2 Deployment using the Scripting Toolkit..........................................................8 Deployment overview.
Using HPDISCOVERY..............................................................................................................26 HPDISCOVERY command-line syntax....................................................................................27 HPDISCOVERY command-line arguments..............................................................................27 HPDISCOVERY return codes................................................................................................
Drive.......................................................................................................................43 DriveType................................................................................................................43 OnlineSpare............................................................................................................44 Logical Drive category...................................................................................................
7 Documentation feedback...........................................................................64 Acronyms and abbreviations.........................................................................65 Index.........................................................................................................
1 Introduction Scripting Toolkit The Scripting Toolkit is a server deployment product for IT experts that delivers an unattended automated installation for high-volume server and BladeSystem infrastructure deployments. This document describes how to best use the Scripting Toolkit to configure HP ProLiant servers and BladeSystem infrastructure. It also contains information about the Scripting Toolkit utilities and how to use them in an unattended environment.
2 Deployment using the Scripting Toolkit Deployment overview The Scripting Toolkit includes a set of utilities for configuring and deploying servers in a customized, predictable, and unattended manner. These utilities enable you to duplicate the configuration of a source server on target servers with minimal user interaction. IMPORTANT: HP ProLiant 100 series servers previous to Gen8 do not support all Scripting Toolkit commands. See the following descriptions for utility usage.
Creating a network share To create a network share: 1. Download the appropriate Scripting Toolkit package from the Scripting Toolkit website at http://www.hp.com/go/ProLiantSTK. 2. Extract the package on a common server that resides on the same network as the servers to be deployed. 3. Use the Linux NFS Server Configuration Tool to share the directory in which you extracted the Toolkit package and to assign read and write permissions for all hosts.
5. To add a new device driver name: modprobe —f hpsa 6. Load the channel interface driver for iLO: insmod /opt/hp/hp-ilo/bin/`uname -r`/hp_ilo.ko 7. Mount the network share: mkdir /mnt/toolkit_share 8. Capture a hardware discovery report using the HPDISCOVERY utility: cd /mnt/toolkit_share/utilities 9. Capture the system BIOS configuration using the CONREP utility: cd /mnt/toolkit_share/utilities ./conrep -s -f/mnt/toolkit_share/data_files/conrep.dat 10.
2. 3. At the boot prompt, type bash and then press Enter. When the process is complete, a command prompt appears. Load the network drivers using the loadnet script: /loadnet.sh 4. Load appropriate storage controller drivers: modprobe -f cciss 5. Load the channel interface driver for iLO: insmod /opt/hp/hp-ilo/bin/`uname -r`/hp_ilo.ko 6. Mount the network share: mkdir /mnt/toolkit_share 7. Apply the system BIOS configuration using the CONREP utility: .
3 Booting and OS installation SYSLINUX SYSLINUX is a free third-party bootloader available on the SYSLINUX web page at http:// syslinux.zytor.com/index.php. SYSLINUX is a suite of programs that perform various boot functions. The Scripting Toolkit uses the following bootloader programs: • isolinux.bin—Boot from ISO media. • pxelinux.0—Boot using PXE protocol. • ldlinux.sys—Boot from a USB drive key. The bootloaders each require a configuration file to run: • isolinux.
Setting up a PXE boot environment requires the following general steps: 1. Set up a DHCP server with the appropriate options. 2. Set up a TFTP server with the appropriate options. 3. Populate the TFTP directory share with the Scripting Toolkit boot components. These steps assume that a Linux workstation is used as the DHCP/TFTP server. You might need to download additional components and adapt the following instructions to suit your environment.
server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = yes per_source = 11 cps = 100 2 } In this example, disabled is the default setting, and /tftpboot is the root directory for all client access. To enable the TFTP service on your server, edit the disable line to read: disable = no Populating the TFTP directory share Use the /tftpboot directory from the “Setting up a TFTP server” (page 13) section as the directory where TFTP clients get their files. To populate the TFTP directory share: 1.
Booting from a USB drive key Some applications require the use of a writable medium. While booting from CD is not suitable for this purpose, a USB drive key provides the ideal medium as a writable medium. NOTE: Booting from a USB drive key is supported only on certain HP ProLiant servers. For more information, see the HP SPP website at http://www.hp.com/go/spp. To set up a USB drive key to boot the Scripting Toolkit environment: 1. Download ss_toolkit.linux.tar.gz@9.xx_pubsw-linux_en from http:// www.hp.
The scripting for these steps must be adapted to your server deployment process. In particular, be sure to change the IP address and path of the NFS server to match your environment. You might also need to make other modifications, such as adding extra configuration steps (for instance, running HPONCFG to configure iLO) or additional servers. The sample install_rhel4.sh script is similar to the following: #!/bin/bash ## this script's methods work for RHEL 5 ## SAMPLE.
./ifhw ${HPDISCOVERY_FILE} allboards.xml "PCI:Smart Array 6i Controller" 2> /dev/null if [ $? = 0 ] ; then cd ${TOOLKIT}/hpacuscripting ./hpacuscripting -i ../data_files/dl380g4_sa6i_hpacuscripting.dat fi # Apply Array Configuration for Smart Array P600 Controller if present ./ifhw ${HPDISCOVERY_FILE} allboards.xml "PCI:Smart Array P600 Controller" 2> /dev/null if [ $? = 0 ] ; then cd ${TOOLKIT}/hpacuscripting ./hpacuscripting -i ../data_files/dl380g4_p600_hpacuscripting.
echo "" echo "Rerun hardware discovery to find boot device" ./hpdiscovery -f ${HPDISCOVERY_FILE} ## use hwquery to fetch the boot dev node from hardware discovery file. if [ -z ${BOOTDEVNODE} ]; then export `./hwquery ${HPDISCOVERY_FILE} allboards.xml BOOTDEVNODE=DevNode` fi echo "Boot Device=${BOOTDEVNODE}" if [ -z ${BOOTDEVNODE} ]; then echo "MISSING boot device dev node. Check that the drivers are loaded.
umount /mnt/dos umount ${NFS_MAIN} ## unmount everything else #umount -a #echo "Rebooting" #sleep 5 #/bin/reboot c: Microsoft Windows install_win.sh sample script The install_win.sh sample script performs many of the same hardware configuration tasks described in “Performing an unattended operating system installation” (page 15). Additionally, the sample install_win.
keyboard "us" zerombr yes clearpart --Linux part /boot --size 30 part swap --size 128 part / --size 100 --grow install mouse genericps/2 timezone Etc/GMT-6 #xconfig --server "Mach64" --monitor "generic monitor" skipx rootpw iscrypted $1$ltK6jzho$7pPbE8WPNAeg44UlXqG27 auth --useshadow --enablemd5 lilo --location partition reboot %packages ElectricFence setup filesystem basesystem ldconfig glibc shadow-utils mkkickstart mktemp termcap libtermcap bash MAKEDEV SysVinit XFree86-Mach64 ncurses info grep XFree86-l
authconfig autoconf automake yp-tools ypbind ypserv zlib zlib-devel %post The previous example contains a limited list of packages to be installed. Add to this section any other packages to be installed. The server deployment configuration and operating system installation process is complete.
4 Scripting Toolkit utilities Native package formats The Scripting Toolkit utilities are available as standalone RPM and DEB packages. The Scripting Toolkit utilities are published to the HP Software Delivery Repository under the Extras directory at http://downloads.linux.hp.com/SDR/downloads/Extras. Get started at http://downloads.linux.hp.com/SDR/getting_started. Syntax conventions Syntax refers to the way a command and parameters must be entered.
Using Scripting Toolkit utilities The Scripting Toolkit utilities control the installation process, read the source server configuration, and duplicate the configuration on a target server through a generated script file.
REBOOT command-line examples Command-line argument Description REBOOT A: This command reboots the system to the A: drive. REBOOT PXE This command reboots the system by itself to the PXE NIC. Using SETBOOTORDER SETBOOTORDER enables you to set the order in which devices are booted, including diskette drives, CD-ROM drives, hard drives, PXE, and USB devices. This utility sets the boot order only for devices that exist for a server. The devices can be set to boot in any order.
NOTE: The STATEMGR utility is not supported on 100 series servers. STATEMGR command-line syntax STATEMGR [/R | -R] [EVNAME] [/?] - or STATEMGR [/W | -W] [EVNAME] [VALUE] [/?] STATEMGR command-line arguments Command-line argument Description /R or –R This argument reads the state of the environment variable defined by [EVNAME]. The value of the environment variable is returned as a return code. /W or -W This argument writes the state defined by [VALUE] to an environment variable defined by [EVNAME].
RBSURESET command-line syntax rbsureset [/?] RBSURESET command-line arguments Command-line argument Description [/?] This argument displays help information. RBSURESET return codes Value Meaning 0 The BIOS settings have been successfully reset to the factory default. 1 The BIOS settings have not been reset. Using BOOTEXTRACT BOOTEXTRACT is used to extract the boot sector files from Windows Server 2003. These files can be used later in the installation of Windows Server 2003.
• Processor information • NIC information • PCI devices present in the system • HP Smart Array controller information User process decisions can be made based on data that is in the file created by this utility. NOTE: Information may not be as detailed on HP ProLiant 100 series servers.
Command-line argument Description discovery into device names, such as "Smart Array 5i Controller." This argument specifies the query expression. See “Expression operators and terms” (page 28). IFHW return codes Value Meaning 0 The expression is true. 1 The expression is false. 2 The expression was not understood or an argument was invalid. IFHW command-line examples Command-line argument Description ifhw hpdiscovery.xml allboards.
Expression examples Expression input Result "PCI:Smart Array 5i" True if the Smart Array 5i Controller is found in the system HWQ:TotalRAM gte 512 True if the amount of RAM in the hardware discovery file is at least 512 HWQ:ROMDate neq True if the ROM date in the hardware discovery file is not 11/12/2004 "11/12/2004" HWQ:SystemName eq "ProLiant DL380 G2" True if the system name in the hardware discovery file exactly matches "ProLiant DL380 G2" "ProLiant DL380 G2" and "PCI:Smart Array 5i" and HWQ:R
HWQUERY command-line examples Command-line argument Description hwquery hpdiscovery.xml allboards.xml MY_SYS_RAM=TotalRAM For a hpdiscovery.xml file that contains 768, HWQUERY produces the following: MY_SYS_RAM=768 hwquery hpdiscovery.xml allboards.xml "TEST=Smart Array" For a hpdiscovery.xml file that indicates a Smart Array 5i Controller is present, HWQUERY produces the following: TEST=Smart Array 5i Controller hwquery hpdiscovery.xml allboards.
CONREP command-line syntax conrep [-s | -l] [-xhardware_definition_file] [-fsystem_configuration_file] [-?] CONREP command line arguments Command-line argument Description -s This argument saves the system configuration to a file. -l This argument loads the system configuration from a file and writes it to the target server. -xfilename This argument defines the name and location of the XML hardware definition file. The default file is conrep.xml.
CONREP -s (Store to Data file) Example usage for HP ProLiant servers not using the Oxx ROM family To extract the BIOS settings from an SL160z G6 server and save the configuration to an "sl160zconrep.dat" data file: [root@ilo002481b08134 conrep]# ./conrep -s -xconrepSL160zg6_20090728.xml -fsl160zconrep.dat conrep 3.00 - Scripting Toolkit Configuration Replication Program Copyright (c) 2007-2012 Hewlett-Packard Development Company, L.P.
00 00 78 c1 PAGE 3400 01 03 02 04 ff ff ff
80 86 25 a3 00 00 fa 41 0e 11 ff ff
HPRCU command line arguments Command line argument Description -s This argument saves the system configuration to a file. -l This argument loads the system configuration from a file and writes it to the target server. -f{file.xml} Name of the input or output file. If not specified, the XML configuration defaults to hprcu.xml. -h This argument displays program usage. -t Outputs the help and warning text for each feature. Only valid with the -s option.
Using HPACUSCRIPTING Starting with version 8.28.13.0, ACU Scripting is now a standalone application that is distributed with the ACU CLI application. In ACU versions prior to 8.28.13.0, the scripting executable was provided with the ACU GUI component. For more information, see the Configuring Arrays on HP Smart Array Controllers Reference Guide on the HP website at http://www.hp.com/support/CASAC_RG_en.
Creating an ACU script file To create a valid ACU script file, use one of the following methods: • Modify the sample custom input script (page 37). • Create a Capture file for capturing a configuration (page 36). You can create a capture file from any server that has ACU loaded, and then modify the values of options in the file as necessary for the target system. This method is useful for applying a standard configuration to several servers that have similar storage resources.
PreferredPathMode = Auto|Manual ; COMMENT: the following five entries are used to optimize the controller performance for video MNPDelay = 0|1|2|...|60 ; units are minutes, zero indicates disabled IRPEnable = Yes|No DPOEnable = Yes|No ElevatorSortEnable = Yes|No QueueDepth = 2|4|8|16|32|Auto Array = A|B|C|D|E|F|G|...Z|a|b|c|d|e|f OnlineSpare = None | N | Port:ID,Port:ID... | Box:Bay,Box:Bay... | Port:Box:Bay,Port:Box:Bay,... ; COMMENT: These values are available only in Custom method mode.
The options for each category are listed in the following table and described in more detail in the remainder of this section. Category Options Description Control Action Use these options to define the overall behavior of ACU when it processes scripts and creates configurations. Control options can occur only once in a script file and must be listed first.
Action mode You must specify an Action mode: • In Configure mode, you can create new arrays, but you cannot modify existing arrays. The controller must be connected to unassigned physical drives for this mode to be available. • In Reconfigure mode, you can modify existing arrays. For example, you can set up an array expansion, a logical drive extension, or a migration. These procedures do not destroy data, unless you specifically want the data to be deleted.
ChassisName Enter the user-defined character string that identifies the controller. You can use any of the following characters in the string: a–z, A–Z, 0–9, !, @, #, *, (, ), ,, -, _, +, :, ., /, [space] You do not need to use quotation marks around the string, but doing so allows the string to begin with a space character. However, the string cannot end with a space character.
Read:write ratio RA4x00 with 16MB cache RA4x00 with 48MB cache All other controllers with battery-backed write cache All other controllers without battery-backed write cache 70:30 + + – – 60:40 + + – – 50:50 + + + – 40:60 – + – – 30:70 – + – – 25:75 – + + – 0:50* + – – – 0:75* – + – – 0:100 – – + – * The cache ratio percentages do not total 100 in these cases because the additional 16-MB or 48-MB cache modules are not used.
Array category The Array category has the following options: • “Array” (page 43) • “Drive” (page 43) • “DriveType” (page 43) • “OnlineSpare” (page 44) Array Enter a letter or pair of letters to identify the array you are creating or reconfiguring, and observe these additional limitations: • In Configure mode, ACU creates a new array.
OnlineSpare The value for this option determines whether the array specified previously in the script will be configured with spare drives. Method mode Possible values Default value Custom To specify exactly which drives to use as spares, In Configure action mode: None. use the applicable convention (port:ID, box:bay, In Reconfigure action mode, ACU ignores any or port:box:bay).
The following defaults apply: • For new logical drives, the default value is Disabled. • For existing logical drives, the default value is the current logical drive setting. ParityGroups When you create a RAID 50 or RAID 60 configuration, you must also set the number of parity groups. You can use any integer value greater than 1 for this setting, with the restriction that the total number of physical drives in the array must be exactly divisible by the number of parity groups.
array, as long as the operating system supports logical drive extension. You cannot reduce the size of the logical drive. CAUTION: Back up all data before extending a logical drive. SSPAdaptersWithAccess Enter values here to identify the SSP adapters that you want to have access to a logical drive. The values are processed only if either SSPState or LogicalDriveSSPState is set to Enable. Otherwise, the values are ignored.
The string can consist of the following: • A maximum of 16 characters • Embedded space characters but cannot end with a space character • Any of the following characters: a–z, A–Z, 0–9, !, @, #, *, (, ), -, _, +, :, ., /, and [space] HBA_WW_ID This option specifies which HBA, based on its assigned WWN, is modified by the configuration changes. HostMode This option specifies the HostMode for a selected HBA. Setting the Host Mode optimizes the storage array for the selected operating system.
Error code Error message Comment or clarification between operations. Limit the number of such configuration changes in the script. 48 1091 Controller does not support SSP. — 1093 Controller requires physical drives to set license keys. — 1102 Slot information is not available. You cannot run a script in Input mode on internal controllers that do not have slot information online. Systems running Microsoft Windows must have the System Management Driver loaded.
Error code Error message Comment or clarification 2831 Cannot change array spare. This error message appears if you try to change the number of spares in an array when the configuration does not support the addition or subtraction of spares. 2832 Invalid physical drive. A specified physical drive is not a valid physical drive, or it cannot be placed in the array. 2833 Invalid spare. A specified spare is not a valid spare drive, or it cannot be placed in the array as a spare.
Error code Error message Comment or clarification 2851 Invalid RAID Array ID. The scripted RAID Array ID is invalid. Use characters from the set a–z, A–Z, 0–9, !, @, #, *, (, ), ,, -, _, +, :, ., /, and [space]. The ID cannot end with a space character or exceed the maximum number of characters allowed by the controller. 2852 Invalid SSP state. — 2853 Cannot change SSP settings. — 2854 Invalid SSP adapter ID. — 2855 Controller does not support logical drive SSP states.
Error code Error message Comment or clarification 2882 Invalid value for MNPDelay. Valid range is 0 (disabled) to 60 minutes. — 2883 Invalid controller configuration value. Expecting Yes or No. — 2884 Invalid value for QueueDepth. Valid range — is from 2 to 32, or Auto. Using HPLPCFG You must edit the text file to insert the WWID of the boot volume and the LUN number that the WWID boots from.
Value Meaning 5 There was no adapter or Emulex HBA found on this host. 6 There was an error retrieving the I/O address. 7 The WWID was invalid because of one of the following: • An invalid value for WWID and BootDeviceWWID, and not a hex value • The WWID specified for HBA in the .ini file does not match any HBAs found on the host (for the /l option only) 8 The LUN was invalid.
LO100CFG command-line arguments Command-line argument Description -x This argument displays example XML to perform configuration. -v This argument outputs the current copyright and version information and then exits. -s This argument captures the current status and outputs it to the console. -h The argument lists basic command line arguments and supported XML tags. -i "file.xml" This argument loads and runs the given XML configuration file. -o "file.
PAGE 55HPQLAREP return codes Value Meaning 0 The command was completed successfully. 1 There was an invalid command line option. 2 There was a file open error. 3 There was an NVRAM checksum error. 4 There was an NVRAM data error. 5 There was no adapter found on this host. 6 There was an error retrieving the I/O address. 7 The WWID was invalid. 8 The LUN setting was invalid. 9 The EFI Enable Selective LUN setting was invalid. 10 The BIOS Enable setting was invalid.
You must then invoke the tool to load the contents of hba.ini input to the HBA NVRAM: hpqlarep /l hba.ini. Using HPONCFG HP offers support for the iLO features available on HP ProLiant servers with the HPONCFG utility. HPONCFG is an online configuration tool used to set up and reconfigure iLO without requiring a reboot of the server operating system. The utility runs in a command-line mode and must be executed from an operating system command line.
HPONCFG return codes Value Meaning 0 The script was sent successfully to the device. 1 The script could not be sent to the device. There is an error in xml. 2 The Management processor is not present, or the driver is not running. 3 The iLO flash is still in progress. 255 The script is unable to create an output file. If the script itself fails, errors are reported in the log file created by HPONCFG.
PAGE 59 Setting a configuration A specific configuration can be sent to the iLO by using the command format: HPONCFG /f add_user.xml /l log.
5 Troubleshooting Troubleshooting table 60 Issue Troubleshooting Data loss in Toolkit Improper use of the Toolkit utilities and modification of the CONREP data files can result in loss of critical data. Because of the potential data-loss risk, only experienced individuals should use the Toolkit utilities. Before using the Toolkit, all necessary precautions must be taken to ensure that mission-critical systems remain online if a failure occurs.
6 Support and other resources Information to collect before contacting HP Be sure to have the following information available before you contact HP: • Software product name • Hardware product model number • Operating system type and version • Applicable error message • Third-party hardware or software • Technical support registration number (if applicable) How to contact HP Use the following methods to contact HP technical support: • See the Contact HP worldwide website: http://www.hp.
Scripting Toolkit support E-mail support for the Scripting Toolkit is available from the HP support website at http:// h18013.www1.hp.com/products/servers/management/toolkit/smartsetup_E-support.html. Typographic conventions Table 1 Document conventions Convention Element Blue text: Table 1 (page 62) Cross-reference links and e-mail addresses Blue, underlined text: http://www.hp.
can be easily integrated to work with a supported version of HP Systems Insight Manager. HP Insight Remote Support 7.x provides anytime, anywhere personalized access to your IT environment through HP Insight Online, and is also the recommended version for HP Proactive Care Service. • HP Insight Remote Support Advanced supports medium-sized to large environments with up to 3,500 devices.
7 Documentation feedback HP is committed to providing documentation that meets your needs. To help us improve the documentation, send any errors, suggestions, or comments to Documentation Feedback (docsfeedback@hp.com). Include the document title and part number, version number, or the URL when submitting your feedback.
Acronyms and abbreviations ACU Array Configuration Utility BIOS Basic Input/Output System CONREP Configuration Replication utility CPQACUXE Array Configuration Utility XE CPQLOCFG Lights-Out Configuration Utility DHCP Dynamic Host Configuration Protocol DOS disk operating system FAT file allocation table GUI graphical user interface HBA host bus adapter HPDISCOVERY HP Discovery Utility HPONCFG HP Lights-Out Online Configuration utility HPQLAREP HP QLogic FC HBA BIOS configuration ut
TFTP Trivial File Transfer Protocol USB universal serial bus VPD vital product data WOL Wake-on LAN WWID World Wide ID WWN World Wide Name WWPN worldwide port name XML extensible markup language 66 Acronyms and abbreviations
Index A H acronyms and abbreviations, 65 ACU script file, 37 anaconda-ks.
return codes, 28 iLO, 56 install_win.