Search Me

Friday, January 10, 2014

Adding the HP Support Pack (SPP) for Proliant to SCCM 2012 R2 OSD

In a previous post, I discussed a method to deploy the PSP to HP Servers using a Task Sequence in OSD.  Since then, HP has discontinued the PSP and replaced it with the SPP.  Fortunately for us, not much has changed and you can still use the previous methods to deploy via task sequence.

In this post, I'm going to re-visit the same topic, but add a little more information.  I do assume that you are familiar with SCCM, creating Packages, OSD, and are familiar with the command line.

Get a Base Installation of the SPP

To start, download the SPP from HP.  Open up the ISO that you get using your favorite utility (I use 7zip -- it's free) and browse to the hp\swpackages folder.  You should see a bunch of files that we need to extract to a new folder wherever you are keeping your driver source packages.  In the end, the new folder you created should have the same files as the \hp\swpackages folder in the ISO you downloaded.

My driver source path looks like this:    \\server\share\sccm\osd\drivers\source\hp\spp\

Update the SPP

This step is optional.  If you would like to have an updated installation of the SPP, you can use this to get the latest drivers from HP.  If you do not want updated drivers, skip this step.  If you do want to perform this step, you can do it from any machine as we will not be actually installing the SPP, just using it to get the updated packages and then integrating them into the swpackages folder.

From your package source, run setup.exe.  When the SUM Wizard appears, click next.  Depending on your machine, and whether you've run/configured SPP before, you might get a welcome page.  Click past the welcome page until you get to the Current Repositories Screen.

The default repository will be checked, and it will automatically start scanning looking for updates.  While this is happening, enable the "Check for Latest Updates from ftp.hp.com" repository.  When the configuration screen opens, enter any necessary information that your environment might need to connect to the internet and save the data to the local machine.  The default is to save updates in C:\Repository -- if this is ok, leave it, otherwise change it (this will be a temporary location).  When you close this screen, the repository will be added.

Adding the repository.  Due to the way the updates are processed, this can take quite some time.

When repository is added, the Next button will go from gray to blue.  Click the Next button.

At this point, you will be presented with a screen requesting your permission to download updates.  You can either go through the list and only select the updates you want, or just go ahead and download them all.  After you've made your choices of what updates to download, hit the OK button and go get some coffee, as it is going to take quite a while to bring all the updates local to your machine.


Note: Every time the window updates, it's going to steal focus.  This makes it incredibly annoying 
trying to work on the same machine that you're downloading the updates from...



When the downloads complete, exit out of the program.  

Now it's time to merge the updates into the installation.  This is probably the easiest part of the process, as we just need to copy all the files that you downloaded into the source path (where you ran setup.exe from). 

If you're following my example, you would copy C:\Repository\*.* to \\server\share\sccm\osd\drivers\source\hp\spp\

Once this copy has finished, move on to the next step.


Create a Silent Install

Now that we have a fully updated installation package, we need to make an installation for it to use in Configuration Manager.  This is where most people start to have problems.  

The HP Update process doesn't use standard exit codes.  Instead, they use a custom codes.  You can find the table here, or use the info I provide:

Exit Code 0 : Success
Exit Code 1 : Success, requires a reboot
Exit Code 3 : No update required
Exit Code -1 : General Failure, review the log
Exit Code -2 : A Bad input parameter was in counter
Exit Code -3 : Installation failed

During OSD, you're most likely going to exit with a 1.  By default, Configuration Manager interprets that as a failure and the step doesn't complete successfully.  However, if you use a batch file to catch %errorlevel% after the update process runs, you can translate a 1,2,3 into a 0 and it will will complete successfully.

Here is a sample batch file that you can use:

:Init
  @Echo Off
  Cls
  
:Main
  Echo HP Proliant Support Pack
  Echo Source : %~dp0
  Echo ===============================================================================
  Echo Installing the HP Proliant Support Pack
  Echo Command: "%~dp0hpsum.exe" /use_latest /allow_non_bundle_components /express_install
  "%~dp0hpsum.exe" /use_latest /allow_non_bundle_components /express_install 
  
:CheckForErrors
  Echo HP SPP
  
  If "%errorlevel%"=="0" (
     Echo Installation Successful!
     exit 0
  )
  
  If "%errorlevel%"=="1" (
     Echo Installation Successful, but a reboot is required.
     exit 0
  )
  
  If "%errorlevel%"=="3" (
     Echo Installation was canceled, or no components were updated
     exit 0
  )
  
  
:End
  exit %errorlevel%  

Save that into you driver source.  We'll reference it later when we build the package.


Build the Installation Package

At this point, we're going to use a software package to deploy this during OSD.  Since it really is a collection of software, it doesn't really fit the application model.

Open the configuration manager console.  From the Software Library context, expand Overview > Application Management > Packages.  Right click on this node and create a new package.

On the initial screen, give the package a name.  Select This package contains source files, hit browse, and provide the full path to your driver source.  Then hit next.


Choose to create a standard program and click next.  Give the Program a name, specify the command line (should be the name of the batch file you created), set it to run Hidden and to run "Whether or not a user is logged on", then hit next.


Configure the rest of the program the for your environment.  Once finished, don't forget to replicate the package to your distribution point!

At this point, you should be able to put the SPP into a Task Sequence and have it install successfully!