HP Insight Integrations for SCCM – Notes from the Field…

I’m not sure how many folks out there use HP Insight Integrations for SCCM, but I noticed when I first started digging into them that documentation about how they worked was *sparse* at best.  A lot of how I learned to use these integrations was a combination of reading other vendor’s documentation and generic trial/error.  The specific version of Insight Integrations I’ve been using are the ones that support Windows 2012, HP Gen 8 servers, and SCCM 2012 SP1.

NOTE:  I’ll spare you the boring details about how to actually *install* the integrations.  It’s mostly a “click the next button” type of install – just make sure noone’s got the console open and you should be fine.

Installation Complete… Now What?!

This is where the documentation leaves you hanging… fortunately you’ll have this braindump in your “Favorites” to get you started.  To set up an environment where you can start capturing your configurations, you’ll need to run through some pre-requisites.  I did these initially to save time, but later ran into an issue where these turned out to be sufficient workarounds for the failing (but supposedly tested and working) functionality:

  1. imageThe integrations create “HP Proliant” software packages and two Driver Packages (one for 2012, one for 2008 R2 SP1).   On the Data Access tab in the properties for these packages, select the option to publish them to a common package share.
  2. In the properties of the installer-created “HP Proliant Boot Image,” ensure that Command Support is checked on the “Customization” tab.  I also like to include the Powershell components in the “Optional Components” tab.  Distribute the content and make sure your distribution points are updated!
  3. Create Task Sequence Media (bootable ISO) based off the installer-created “HP Proliant Boot Image.”  I generally created site-specific boot media rather than dynamic, as I did all my “testing” in a specific Site.  NOTE:  You’ll eventually need to publish this to a common package share when you start getting into testing.
  4. Mount your new TS Media iso as a virtual DVD in your Integrated Lights Out console.  Configure an HP Proliant G7 or Gen8 server the way you would like it and boot it into WinPE using this TS Media.

How the Integrations Work:

Now that the pre-req’s are done, lets look at how the Integrations work.  You’ll notice that a number of new folders are created underneath the \OSD\Lib\Packages\HP\Proliant\ folder.  The folder we want to focus on is the HWConfig folder.   This is where all the scripts and executables are that drive the BIOS, ILO, and SmartArray configuration.   Specifically, the following files are of most concern:

  • Bootorder.cmd – accepts input parameters to change the boot order on supported hardware.
  • BIOS.cmd – This batch script takes an input file in order to modify the BIOS configuration on supported hardware.  It does this by calling either conrep.exe or hprcu.exe  from the x64 folder.
  • ILO.cmdThis modifies the Integrated Lights Out controller settings based on an input file.  It performs these changes by calling hponcfg.exe from the x64 directory.
  • SA.cmdThis modifies the configuration of the SmartArray controller.  It does this by calling hpssascripting.exe from the x64 directory.

One other tidbit to know – some of these batch scripts also make use of the drvload.cmd file in order to load the HP Scripting Toolkit IO driver (hpsstkio.sys) and the hpqilo2/hpqilo3core drivers.

Capturing Your Configurations:

Now that you’ve booted your “gold” hardware configuration(s) into the WinPE Task Sequence media, it’s time to start capturing configurations.  The HP Proliant tasks you can use in a task sequence map directly to the HWConfig folder, so you’ll want to save your configurations in that top-level folder (\OSD\Lib\Packages\HP\Proliant\HWConfig\).

You’ll want to do the following to capture your own configurations:

  1. Press F8 when your Task Sequence environment loads (and before choosing a task sequence to run!!)
  2. Map a drive to your SCCM installation folder:  net use z: \\ primary server>\SMS_
  3. change directory to the HW config folder:  cd \OSD\LIb\Packages\hp\Proliant\hwconfig
  4. Capture the BIOS Configuration:  .\x64\hprcu.exe –s –f .xml
  5. Capture the ILO Configuration:  .\x64\hponcfg.exe /w .xml
  6. Capture the SmartArray Configuration:   .\x64\hpacuscripting.exe –c .ini

NOTE:    Make sure you edit your ILO configuration and apply any variables (e.g.  the variable name surrounded by percent signs [%VariableName%])  where you would like to perform variable substitution.  Variable substitution is covered in greater depth in the Scripting Toolkit documentation, but I generally used a %NAME% variable in the xml configuration so that I can apply the %_SMSTSMachineName% Task Sequence variable.  (see the next section)

NOTE: Make sure you update your distribution points with the HP Proliant Hardware Configuration package in SCCM after capturing the configurations! 

Using Your Configurations:

Honestly, I had mixed results attempting to use the built-in HP “task types” created by the insight integrations.  I found I had better success with the ILO, BIOS, and Array tasks when I manually mapped a drive to the common package source and then ran the utilities as part of a “Run Command Line” task.  As an example:

  1. Create a “Run Command Line” task which maps a drive (example “Z:\”) to the Common Package Share folder for the HP Insight Integrations:  \\ Site Server>\smspkg$\\
  2. Use the Default HP Hardware Configuration Task to set the boot order.  Example parameters:   hd cdrom pxe usb floppy
  3. Next use a “Run COmmand Line” task for the BIOS and run the BIOS update from the mapped drive (i.e. set the “Start In” parameter to Z:\) in step 1.   Example:   .\x64\conrep.exe -l –f -x .\x64\conrep.xml
  4. Next use a “Run Command Line” task for the ILO configuration (also using your mapped network folder as the start-in parameter).  Note the use of the “%NAME%” variable for substitution on the command line.   Example:  .\x64\hponcfg.exe /f .\ /s NAME=%_SMSTSMachineName%
  5. Finally, use a “Run Command Line” task for the HP SmartArray controller configuration (also using your mapped network folder as the start-in parameter).  Example:  sa.cmd

Controlling Task Conditions:

In my own task sequence, I tried including configurations for different sets of hardware.  This can be useful if you have multiple standard platforms and/or if you need to accommodate a large volume of “project-specific” build configurations (e.g. BIOS settings and/or Array Configurations).   You can accomplish this by using either the Make/Model Task Sequence variables provided by the Microsoft Deployment Toolkit, or by running WMI Queries.   I’ve provided some sample WMI Queries in a recent post WMI, Powershell, and Various Scripts for SCCM.   If you’ve added Powershell support to your WinPE boot image, you can always discover the necessary make and model by doing the following:

  1. From the F8 prompt in WinPE, type powershell.exe
  2. At the prompt, type gwmi Win32_ComputerSystem
  3. Snag the values for Make and Model
  4. Use them in a WMI query such as:  Select * FROM Win32_ComputerSystem where Model=””  or Select * FROM Win32_ComputerSystem where Make=”

Thoughts?

As always, I welcome your feedback and commentary!  I hope you find this a valuable resource that will save you some time digging through all the HP documentation!

About Robert

An IT nerd with 10+ years of experience in almost *anything* windows (server and desktop), Citrix, Exchange, Google Apps, and WordPress. I like to dabble in just about anything IT related, and read blogs and tech books like crazy!

Find Robert on , and Twitter.

Comments

  1. Thanks for this. How did you handle a reboot after setting up the array? My array sets up fine, but seems to need a reboot for the TS to continue.

    Cheers

  2. David,

    I ran into the same issues initially by deploying the task sequence with the option to “download content locally.” When the array configuration applied, it wiped out the file system and destroyed the cache being used by the TS Engine. I would get a funky error and would have to restart the task sequence over again.

    I got around this by running all the content directly from the distribution point. If you select the option to “publish to a common package share” on the Data Access tab for all your packages (OS, Drivers, Packages/Apps, etc), this will allow you to select the option to “Access Content Directly from a Distribution Point” when you deploy the task sequence. The Array Config task should still wipe-out the filesystem, but the task sequence should continue running since all the content is being loaded from the remote distribution point.

    Hope that helps!

    Rob

  3. Rob,

    Thanks. What I am seeing is my hardware steps all get completed without problems. The final step is the array config. Then the TS creates the drives, which is successful, the next step is to apply the OS, but this errors out saying C is not bootable. A reboot fixes the problem but I cannot reboot after setting the array as I guess the boot.wim cannot be staged. I have set the deployment to run direct from the DP.
    My TS is:
    Set BIOS
    Set iLO
    Set boot order
    Set array
    Format disk 0
    Apply OS

    Can help would be greatly appreciated.

    Thanks,

    David

  4. David,

    Something you could try would be to add Powershell to your Boot image, and then insert the following Command Line (“Run Command Line” task) after the Set Array and Format Disk tasks:

    powershell.exe -noprofile -Command “&amp{Start-Sleep 20}”

    NOTE: remove the “amp” between the ampersand and the left bracket — had to include so the command would display.

    This may give the array time to complete and also allow the disk formatting to finish writing to disk before you attempt applying the OS. Also, did you verify your “Format Disk” task isn’t set to continue on error? What does the smsts.log tell you? If you’re running the task sequence directly from the distribution point your smsts.log file should be in the %temp% folder on the x: drive.

    Rob

Speak Your Mind

*