Abstract

This document will show how the HP SmartStart Scripting Toolkit for Linux (SSSTK) was used to automate server provisioning and OS deployment on HP ProLiant servers.

The Linux Solutions Engineering Linux Lab located in Houston has many ProLiant servers that are in an ever changing state of options being added and removed. The operating system is also changed on a frequent basis. HP Rapid Deployment Pack (RDP) and HP Insight Control Linux Edition (ICE-Linux) are fine solutions for deploying Linux, but in our lab environment we utilize unreleased hardware and software that these products do not yet support. 

The SSSTK is designed as a "roll your own" solution. The toolkit uses the bash shell to perform work. By creating custom bash shell scripts we can automate the various tasks involved with configuring the systems and deploying the operating systems. The scripts can be modified at any time to adjust for new servers or operating systems.

Methodology:

This collection of scripts was designed with the following in mind. Scripts need to be portable and modular. This makes for easy implementation in a new PXE environment and allows for easy modification.  When working with a new ProLiant server, the only information attached to the outside of the server is the serial number and iLO(2) information. Taking this into account all system personalization/provisioning information is based on the system serial number.

Once PXE booted the toolkit kernel and programs from the initrd image run in a RAM drive. Over time the scripts have increased in functionality which required more programs to be included in the initial initrd image.  A custom initrd image is included with this package named initrd.mod and is located in the boot_files directory.  This custom initrd image contains the contents of the initrd image file that ships with the standard SSSTK v1.90 plus additional programs. 

The SSSTK utilities support the 300, 500, 700 series ProLiant Servers and both p-class and c-class Blade Servers. The scripts in this package can also work with the 100 series ProLiant servers, but only to deploy an operating system as the utilities in the SSSTK do not support 100 series ProLiant servers.

When a system boots the SSSTK, control is passed to the scripts. In a nutshell the system is identified, and then the scripts check a specific location based on the system serial number for information on hardware settings and OS auto-installation information. Hardware configuration includes firmware updates, System ROM settings, Smart Array Controller RAID configuration and iLO(2) settings. Once the hardware has been configured, a small partition is created on the local hard disk. The OS network installation information is created on the local hard disk. The system reboots and installs the selected OS. During the OS installation, the disk area is reclaimed and used by the OS.

Another HP open source project, The Linux Common Operating Environment (LinuxCOE) includes an option to work with this scripting package. LinuxCOE can be used as a front-end that creates the OS network installation options for the scripts in this package. LinuxCOE can also be used for lifecycle management. For more information about LinuxCOE visit http://opensource.hp.com. LinuxCOE is listed under HP-Sponsored Open Source Projects.


Script Information:

Each script is embedded with detailed comments explaining the actions being performed.

Main Scripts

capture.sh - Captures hardware settings from an existing system. The files created by the utilities are saved on the NFS server in a directory using the serial number of the system being captured as the name of the directory. 

deploy.sh - Identifies the server model, performs updates, sets OS deployment information.

config_hw.sh - Configures System ROM, RAID settings, and iLO(2).

land_install.sh - Sets up local disk for network OS installation. 

land_windows.sh - Sets up local disk for Windows installations

land_grub.sh - Sets up local disk for Solaris installations

Scripts called by main scripts

includes - Sets variables for the working environment, called by deploy.sh and capture.sh

system-id - Listing of all supported servers and default architecture, called by capture.sh and deploy.sh

firmware_update.sh - Used in conjunction with the Firmware Maintenance CD to update ROM firmware.
 
settime.sh - Sets hardware clock to the current date/time, creates custom POST message

Additional Scripts

acureset.sh - Clears Smart Array controller RAID settings.

systemreset.sh - Sets system ROM, Smart Array Controller, and iLO(2) to factory defaults

Using these base scripts in their present form creates a no frills automated deployment environment. The scripts can easily be modified and tailored for a specific need.  This scripting package has been used by various HP field personnel to easily automate installations at customer sites. HP Factory Express has used this package in a modified form to automate building customer orders. Another custom version of this package was used to create a "Quick Restore" type DVD to bring a customer's systems to a known load state.
 


 




