SlideShare a Scribd company logo
APOLLO GROUP




Automated Configuration of Firmware

Michael Arnold
Principal Systems Engineer
27 September 2012
Agenda

  Who
  Tools
  Example Workflow
  Example Code
  Links
  Questions




APOLLO GROUP          © 2012 Apollo Group        2
APOLLO GROUP




  Who




APOLLO GROUP Apollo Group
          © 2012            3
Who is Apollo?

        Apollo Group is a leading provider of higher
          education programs for working adults.




APOLLO GROUP              © 2012 Apollo Group                4
Who is Michael Arnold?

  Systems Administrator
  Automation geek
  13 years in IT
  Hadoop Cluster Admin
  I deal with:
      –Server hardware specification/configuration
      –Server firmware
      –Server operating system
      –Hadoop Cluster performance and availability


APOLLO GROUP              © 2012 Apollo Group        5
How does firmware tie in with Puppet?

  It has nothing to do with Puppet.
      –Unless someone writes a module to program
       firmware from the running OS.
          • Which could work for RAID controllers.




APOLLO GROUP                 © 2012 Apollo Group     6
APOLLO GROUP




  Tools




APOLLO GROUP Apollo Group
          © 2012            7
Hardware Toolkits

  HP SmartStart Scripting Toolkit
  Dell OpenManage Deployment Toolkit
  IBM ServerGuide Scripting Toolkit
  Fujitsu ServerView Scripting Toolkit




APOLLO GROUP           © 2012 Apollo Group                   8
What do the tools provide?

  Configuration of
      –BIOS
      –BMC (DRAC/iLO/RSA/etc.)
      –Hardware RAID
      –FC HBA




APOLLO GROUP           © 2012 Apollo Group     9
How does the toolkit work?

  Manually configure reference hardware
  Capture the firmware configuration
  Clone the configuration to multiple machines




APOLLO GROUP             © 2012 Apollo Group      10
Toolkit Components




    Kernel &   Firmware
                                                Toolkit
     Initrd       Tools




APOLLO GROUP   © 2012 Apollo Group                        11
Toolkit Requirements



                TFTP
         DHCP                          NFS

                Toolkit

APOLLO GROUP    © 2012 Apollo Group               12
APOLLO GROUP




  Example Workflow




APOLLO GROUP Apollo Group
          © 2012            13
Assumptions

  Hardware is racked and cabled
  Switch ports are up
  Server is manually powered on
  Firmware defaults are to boot from network if no
   other boot device is found.
      –No other boot devices are found




APOLLO GROUP              © 2012 Apollo Group             14
Constraints

  All server hardware is from the same vendor (HP)




APOLLO GROUP           © 2012 Apollo Group             15
The Process




     Firmware   Hardware                  Firmware      Buildsystem
      Update    Discovery               Configuration   Registration




APOLLO GROUP            © 2012 Apollo Group                            16
Screencast




APOLLO GROUP   © 2012 Apollo Group            17
Workflow

  Unknown system netboots




APOLLO GROUP         © 2012 Apollo Group          18
Workflow

  Unknown system netboots
  Boot into HP SmartStart Scripting Toolkit




APOLLO GROUP            © 2012 Apollo Group          19
Workflow

  Unknown system netboots
  Boot into HP SmartStart Scripting Toolkit
  Gather hardware information (CPU/RAM/disk/NIC)
   via hpdiscovery




APOLLO GROUP          © 2012 Apollo Group          20
Workflow

  Unknown system netboots
  Boot into HP SmartStart Scripting Toolkit
  Gather hardware information (CPU/RAM/disk/NIC)
   via hpdiscovery
  If this is HP hardware, then
      –Update firmware
      –Configure BIOS
      –Configure iLO
      –Configure RAID


APOLLO GROUP             © 2012 Apollo Group          21
Workflow

  Unknown system netboots
  Boot into HP SmartStart Scripting Toolkit
  Gather hardware information (CPU/RAM/disk/NIC)
   via hpdiscovery
  If this is HP hardware, then
      –Update firmware
      –Configure BIOS
      –Configure iLO
      –Configure RAID
  cobbler-register to the hardware profile

APOLLO GROUP             © 2012 Apollo Group          22
Workflow

  Unknown system netboots
  Boot into HP SmartStart Scripting Toolkit
  Gather hardware information (CPU/RAM/disk/NIC) via
   hpdiscovery
  If this is HP hardware, then
      –Update firmware
      –Configure BIOS
      –Configure iLO
      –Configure RAID
  cobbler-register to the hardware profile
  System reboots

APOLLO GROUP             © 2012 Apollo Group            23
Workflow

  Modify Cobbler system profile, giving it an identity
   (hostname, IP, OS metadata)




APOLLO GROUP             © 2012 Apollo Group              24
Workflow

  Modify Cobbler system profile, giving it an identity
   (hostname, IP, OS metadata)
  Known system netboots




APOLLO GROUP             © 2012 Apollo Group              25
Workflow

  Modify Cobbler system profile, giving it an identity
   (hostname, IP, OS metadata)
  Known system netboots
  Boot into OS installer




APOLLO GROUP             © 2012 Apollo Group              26
Workflow

  Modify Cobbler system profile, giving it an identity
   (hostname, IP, OS metadata)
  Known system netboots
  Boot into OS installer
  Install OS




APOLLO GROUP             © 2012 Apollo Group              27
Workflow

  Modify Cobbler system profile, giving it an identity
   (hostname, IP, OS metadata)
  Known system netboots
  Boot into OS installer
  Install OS
  Install Puppet




APOLLO GROUP             © 2012 Apollo Group              28
Workflow

  Modify Cobbler system profile, giving it an identity
   (hostname, IP, OS metadata)
  Known system netboots
  Boot into OS installer
  Install OS
  Install Puppet
  …




APOLLO GROUP             © 2012 Apollo Group              29
Workflow

  Modify Cobbler system profile, giving it an identity
   (hostname, IP, OS metadata)
  Known system netboots
  Boot into OS installer
  Install OS
  Install Puppet
  …
  Profit!



APOLLO GROUP             © 2012 Apollo Group              30
APOLLO GROUP




  Example Code




APOLLO GROUP Apollo Group
          © 2012            31
Dell TFTP Config

  LABEL dtk-install_hadoop
    kernel /images/dtk-3.5.1/SA.1
    append initrd=/images/dtk-3.5.1/SA.2
       ramdisk_size=156482 Stage3_type=cdrom quiet DEBUG=0
       share_location=192.168.1.1:/srv/nfs/ro/dtk-3.5.1
       share_type=nfs selinux=0 share_opts=ro,nolock
       share_script=install_hadoop.sh cprofile=Hadoop
    ipappend 2




APOLLO GROUP                 © 2012 Apollo Group                  32
HP TFTP Config

  LABEL sstk-install_hadoop
    kernel /images/sstk-8.50/vmlinuz
    append initrd=/images/sstk-8.50/initrd.img
       root=/dev/ram0 rw ramdisk_size=184248 ide=nodma
       ide=noraid pnpbios=off network=1
       sstk_mount=192.168.1.1:/srv/nfs/ro/sstk-8.50
       sstk_mount_type=nfs sstk_mount_options=ro,nolock
       sstk_script=install_hadoop.sh cprofile=Hadoop
    ipappend 2




APOLLO GROUP                  © 2012 Apollo Group                33
Dell Config Capture

  cd /opt/dell/toolkit/template/scripts
  /opt/dell/toolkit/template/scripts/syscap.sh            /tmp/syscap
  /opt/dell/toolkit/template/scripts/raidcap.sh /tmp/raidcap
  /opt/dell/toolkit/template/scripts/raccap.sh            /tmp/raccap


  # MegaCLI does not come with the DTK so "install" it.
  cp -a /opt/dell/toolkit/systems/MegaCLI/opt/MegaRAID 
   /opt/MegaRAID
  /opt/MegaRAID/MegaCli/MegaCli -CfgSave -a0 -f /tmp/mega.0




APOLLO GROUP               © 2012 Apollo Group                          34
HP Config Capture

  cd /TOOLKIT
  ./conrep -s -f /tmp/conrep.dat                            # BIOS
  ./hpacuscripting -c /tmp/cpqacuxe.dat                     # RAID
  ./hplpcfg /s /tmp/hplpcfg.dat                             # Emulex HBA
  ./hpqlarep /S /tmp/hpqlarep.dat                           # Qlogic HBA


  if ./ifhw /tmp/hw_discovery.dat allboards.xml 
   "PCI:Integrated Lights-Out" 2> /dev/null ; then
       ./hponcfg -w /tmp/hponcfg.dat                        # iLO 2/3
  else
       ./lo100cfg -o /tmp/lo100cfg.dat                      # LO100i
  fi

APOLLO GROUP                  © 2012 Apollo Group                          35
Platform Detection

  *** Detecting system type ***
      System Information:
          Name      : ProLiant DL360 G5
          Serial    : USE123D456
          Arch      : x86_64
          LNAME     : ProLiantDL360G5
          SNAME     : DL360 G5
          Asset Tag : 01234567




APOLLO GROUP                   © 2012 Apollo Group                    36
Some Available Variables
   HP SSSTK has a function library that sets many variables.
      – $PRODUCT_NAME =
          • "ProLiant SL170z G6"
          • "ProLiant DL360 G6"
      – $SERIAL_ID = hardware serial number
      – $PRODUCT_LNAME =
          • "ProLiantSL170zG6"
          • "ProLiantDL360G6"
      – $PRODUCT_SNAME =
          • "SL170z G6"
          • "DL360 G6"
      – $TOOLKIT_MNTPNT = /mnt/main
      – $TOOLKIT_SERVER_IP = NFS server IP
      – $HWDISC_FILE = /TOOLKIT/hpdiscovery.xml


APOLLO GROUP                       © 2012 Apollo Group          37
Inside install_hadoop.sh

   Set Variables Based on Hardware Type

  export "`./hwquery ${HWDISC_FILE} allboards.xml SERVERNAME=SystemName`"

  case "${SERVERNAME}" in
  "ProLiant DL160 G6"* )
    CONREPDAT=${TOOLKIT_MNTPNT}/data_files/dl160_conrep.dat
    LO100CFGDAT=${TOOLKIT_MNTPNT}/data_files/dl160_lo100cfg.dat
  ;;
  "ProLiant SL170z G6"* )
    CONREPDAT="${TOOLKIT_MNTPNT}/data_files/sl170z_conrep.dat -x 
       ${TOOLKIT_MNTPNT}/conrep_xml/conrep_SL170zg6_20100401.xml"
    LO100CFGDAT=${TOOLKIT_MNTPNT}/data_files/sl170z_lo100cfg.dat
  ;;
  #...



APOLLO GROUP                     © 2012 Apollo Group                        38
Inside install_hadoop.sh
  #...
  "ProLiant DL360 G5"* )
       CONREPDAT=${TOOLKIT_MNTPNT}/data_files/dl360g5_conrep.dat
       if ./ifhw ${HWDISC_FILE} allboards.xml "PCI:Smart Array E200i Controller" 
        2> /dev/null ; then
            HPACUDAT=${TOOLKIT_MNTPNT}/data_files/dl360g5_saE200i_cpqacuxe.dat
       fi
       if ./ifhw ${HWDISC_FILE} allboards.xml "PCI:Smart Array P400i Controller" 
        2> /dev/null ; then
            HPACUDAT=${TOOLKIT_MNTPNT}/data_files/dl360g5_saP400i_cpqacuxe.dat
       fi
       HPONCFGDAT=${TOOLKIT_MNTPNT}/data_files/dl360g5_hponcfg.dat
  ;;
  esac



APOLLO GROUP                             © 2012 Apollo Group                         39
Inside install_hadoop.sh
  if [ -n "$CONREPDAT" ] ; then
    echo "** Applying BIOS Configuration"
    ./conrep -l -f ${CONREPDAT}
  fi
  if [ -n "$HPACUDAT" ] ; then
    echo "** Clearing RAID Configuration"
    ./hpacucli/hpacuscripting -i ${HPACUDAT}_clear; sleep 5
    echo "** Applying RAID Configuration"
    ./hpacucli/hpacuscripting -i ${HPACUDAT}
  fi
  if [ -n "$LO100CFGDAT" ] ; then
    echo "** Applying BMC Configuration"; ./lo100cfg -i ${LO100CFGDAT}
  elif [ -n "$HPONCFGDAT" ] ; then
    echo "** Applying iLO Configuration"; ./hponcfg -f ${HPONCFGDAT}
  fi



APOLLO GROUP                   © 2012 Apollo Group                       40
Register with Buildsystem
  echo "** Registering with cobbler"
  # Koan does not come with SSSTK, so "install" it.
  ${TOOLKIT_MNTPNT}/koan/install


  # cprofile is set via kernel boot parameter and points at part of a
  #   Cobbler profile name.
  # SERIAL_ID and PRODUCT_LNAME are set via SSSTK.
  # PRODUCT_LNAME = ProLiantSL170zG6, ProLiantDL360G6, etc.
  # SERIAL_ID = hardware serial number
  echo "** Registering to profile ${cprofile}-${PRODUCT_LNAME}"
  cobbler-register --server=${TOOLKIT_SERVER_IP} --fqdn=${SERIAL_ID} 
      --profile=${cprofile}-${PRODUCT_LNAME} --batch




APOLLO GROUP                     © 2012 Apollo Group                     41
Clear the HP RAID Controller
  $ cat dl360g5_saE200i_cpqacuxe.dat_clear
  ; Version: 8.50.6.0
  ; http://h30499.www3.hp.com/t5/ProLiant-Servers-ML-DL-
   SL/CPQACUXE-reset-utility-within-WinPE/td-p/3939475


  Action= Reconfigure
  Method= Custom


  Controller= SLOT 0
  ClearConfigurationWithDataLoss= Yes




APOLLO GROUP                  © 2012 Apollo Group          42
Configure the HP RAID Controller
  $ cat dl360g5_saE200i_cpqacuxe.dat         ; Array Specifications
  ; Version: 8.50.6.0                        Array= A
  Action= Configure                          ; Array Drive Type is SAS
  Method= Custom                             ; 1I:1:1 (72 GB), 1I:1:2 (72 GB)
  ; Controller Specifications                Drive= 1I:1:1, 1I:1:2
  ; Controller HP Smart Array E200i          OnlineSpare= No
  ; Firmware Version 1.82                    ; Logical Drive Specifications
  Controller= SLOT 0                         LogicalDrive= 1
  ReadCache= 100                             RAID= 1
  WriteCache= 0                              Size= 69973
  RebuildPriority= Medium                    Sectors= 32
  ExpandPriority= Medium                     StripeSize= 128
  SurfaceScanDelay= 15                       ArrayAccelerator= Enabled
  DriveWriteCache= Disabled


APOLLO GROUP                     © 2012 Apollo Group                            43
Error Handling

  You may have to test for any failures when
   applying configurations.
  When reusing HP hardware, adding a user to the
   BMC that already exists will cause a failure to
   apply all of the configuration.
  Newer firmware can have different config options
   that will cause an older capture to fail.




APOLLO GROUP           © 2012 Apollo Group                44
Summary




     Firmware   Hardware                  Firmware      Buildsystem
      Update    Discovery               Configuration   Registration




APOLLO GROUP            © 2012 Apollo Group                            45
Links
   HP SmartStart Scripting Toolkit
      http://h18013.www1.hp.com/products/servers/management/toolkit/index.html
   Dell OpenManage Deployment Toolkit
      http://en.community.dell.com/techcenter/systems-management/w/wiki/1772.dell-
        openmanage-deployment-toolkit.aspx
   IBM ServerGuide Scripting Toolkit
      http://www-03.ibm.com/systems/be/management/sgstk/
   Fujitsu ServerView Scripting Toolkit
      http://www.fujitsu.com/fts/products/computing/servers/primergy/management/de
        ploy/
   Cobbler - Linux Installation Server
      http://cobbler.github.com/
   LSI MegaRAID MegaCLI
      http://www.lsi.com/downloads/Public/MegaRAID%20Common%20Files/8.02.24_
        MegaCLI.zip


APOLLO GROUP                          © 2012 Apollo Group                            46
Contact

   https://intelligentsysadmin.wordpress.com/
   https://github.com/razorsedge
   http://forge.puppetlabs.com/razorsedge




APOLLO GROUP                        © 2012 Apollo Group         47
APOLLO GROUP




  Questions?




APOLLO GROUP Apollo Group
          © 2012            48

More Related Content

PDF
UKOUG Tech17 - Stay Secure With Oracle Solaris
PPTX
High Availability Server with DRBD in linux
PDF
Hp cmu – easy to use cluster management utility @ hpcday 2012 kiev
PDF
Chicago Docker Meetup Presentation - Mediafly
PDF
Solaris 11 Consolidation Tools
PDF
Karl Grzeszczak: September Docker Presentation at Mediafly
PDF
BoxGrinder – FUDCon 2011 Tempe
ODP
Develop and Maintain a Distro with Open Build Service
UKOUG Tech17 - Stay Secure With Oracle Solaris
High Availability Server with DRBD in linux
Hp cmu – easy to use cluster management utility @ hpcday 2012 kiev
Chicago Docker Meetup Presentation - Mediafly
Solaris 11 Consolidation Tools
Karl Grzeszczak: September Docker Presentation at Mediafly
BoxGrinder – FUDCon 2011 Tempe
Develop and Maintain a Distro with Open Build Service

What's hot (10)

PDF
Skyfire log files100411
PDF
Managing Perl Installations: A SysAdmin's View
PDF
Red Hat for IBM System z Update v5
PDF
Posh Devcon2009
PDF
Getting the maximum performance in distributed clusters Intel Cluster Studio XE
PDF
Methods and practices to analyze the performance of your application with Int...
PDF
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
PDF
OSDC 2014: Nat Morris - Open Network Install Environment
PPTX
Using puppet
PDF
SOUG - Experiences with Oracle Solaris 11.4
Skyfire log files100411
Managing Perl Installations: A SysAdmin's View
Red Hat for IBM System z Update v5
Posh Devcon2009
Getting the maximum performance in distributed clusters Intel Cluster Studio XE
Methods and practices to analyze the performance of your application with Int...
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
OSDC 2014: Nat Morris - Open Network Install Environment
Using puppet
SOUG - Experiences with Oracle Solaris 11.4
Ad

Similar to Automated Configuration of Firmware (20)

PDF
Hadoop Operations: Starting Out Small / So Your Cluster Isn't Yahoo-sized (yet)
PDF
Hadoop operations
DOC
Unix - Sun Solaris Admin Classroom Training
PDF
Corporate_Training at CETPA Campus for IBM AIX 6.1
PDF
LPI linux certification in a nutshell
PDF
Comp tia linux_powered_by_lpi_lx0_101
PDF
Command Line Admin V10.5
PDF
Command Line Admin V10.5
PDF
Hp ux-admin Online Training
DOC
IBM-AIX Classroom Training
DOC
IBM-AIX Online Training
PDF
Evolving from Products to Product Suite Solutions in High-Tech
PPTX
Oracle Database Appliance RAC in a box Some Strings Attached
PDF
All about linux gaining root remote exploitation
PPT
1483 Quayle
PPT
Network administrationcode Lecture 1.ppt
PDF
Linux hpc-cluster-setup-guide
PPTX
System Center 2012
PPTX
Workstations-02.pptx
PDF
Sap on suse linux
Hadoop Operations: Starting Out Small / So Your Cluster Isn't Yahoo-sized (yet)
Hadoop operations
Unix - Sun Solaris Admin Classroom Training
Corporate_Training at CETPA Campus for IBM AIX 6.1
LPI linux certification in a nutshell
Comp tia linux_powered_by_lpi_lx0_101
Command Line Admin V10.5
Command Line Admin V10.5
Hp ux-admin Online Training
IBM-AIX Classroom Training
IBM-AIX Online Training
Evolving from Products to Product Suite Solutions in High-Tech
Oracle Database Appliance RAC in a box Some Strings Attached
All about linux gaining root remote exploitation
1483 Quayle
Network administrationcode Lecture 1.ppt
Linux hpc-cluster-setup-guide
System Center 2012
Workstations-02.pptx
Sap on suse linux
Ad

Recently uploaded (20)

PPTX
A Presentation on Artificial Intelligence
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Encapsulation theory and applications.pdf
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Approach and Philosophy of On baking technology
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
Spectroscopy.pptx food analysis technology
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Machine learning based COVID-19 study performance prediction
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Electronic commerce courselecture one. Pdf
A Presentation on Artificial Intelligence
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Encapsulation theory and applications.pdf
NewMind AI Weekly Chronicles - August'25-Week II
Reach Out and Touch Someone: Haptics and Empathic Computing
Per capita expenditure prediction using model stacking based on satellite ima...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
The AUB Centre for AI in Media Proposal.docx
Dropbox Q2 2025 Financial Results & Investor Presentation
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Approach and Philosophy of On baking technology
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
sap open course for s4hana steps from ECC to s4
Spectroscopy.pptx food analysis technology
A comparative analysis of optical character recognition models for extracting...
Machine learning based COVID-19 study performance prediction
“AI and Expert System Decision Support & Business Intelligence Systems”
Building Integrated photovoltaic BIPV_UPV.pdf
Electronic commerce courselecture one. Pdf

Automated Configuration of Firmware

  • 1. APOLLO GROUP Automated Configuration of Firmware Michael Arnold Principal Systems Engineer 27 September 2012
  • 2. Agenda Who Tools Example Workflow Example Code Links Questions APOLLO GROUP © 2012 Apollo Group 2
  • 3. APOLLO GROUP Who APOLLO GROUP Apollo Group © 2012 3
  • 4. Who is Apollo? Apollo Group is a leading provider of higher education programs for working adults. APOLLO GROUP © 2012 Apollo Group 4
  • 5. Who is Michael Arnold? Systems Administrator Automation geek 13 years in IT Hadoop Cluster Admin I deal with: –Server hardware specification/configuration –Server firmware –Server operating system –Hadoop Cluster performance and availability APOLLO GROUP © 2012 Apollo Group 5
  • 6. How does firmware tie in with Puppet? It has nothing to do with Puppet. –Unless someone writes a module to program firmware from the running OS. • Which could work for RAID controllers. APOLLO GROUP © 2012 Apollo Group 6
  • 7. APOLLO GROUP Tools APOLLO GROUP Apollo Group © 2012 7
  • 8. Hardware Toolkits HP SmartStart Scripting Toolkit Dell OpenManage Deployment Toolkit IBM ServerGuide Scripting Toolkit Fujitsu ServerView Scripting Toolkit APOLLO GROUP © 2012 Apollo Group 8
  • 9. What do the tools provide? Configuration of –BIOS –BMC (DRAC/iLO/RSA/etc.) –Hardware RAID –FC HBA APOLLO GROUP © 2012 Apollo Group 9
  • 10. How does the toolkit work? Manually configure reference hardware Capture the firmware configuration Clone the configuration to multiple machines APOLLO GROUP © 2012 Apollo Group 10
  • 11. Toolkit Components Kernel & Firmware Toolkit Initrd Tools APOLLO GROUP © 2012 Apollo Group 11
  • 12. Toolkit Requirements TFTP DHCP NFS Toolkit APOLLO GROUP © 2012 Apollo Group 12
  • 13. APOLLO GROUP Example Workflow APOLLO GROUP Apollo Group © 2012 13
  • 14. Assumptions Hardware is racked and cabled Switch ports are up Server is manually powered on Firmware defaults are to boot from network if no other boot device is found. –No other boot devices are found APOLLO GROUP © 2012 Apollo Group 14
  • 15. Constraints All server hardware is from the same vendor (HP) APOLLO GROUP © 2012 Apollo Group 15
  • 16. The Process Firmware Hardware Firmware Buildsystem Update Discovery Configuration Registration APOLLO GROUP © 2012 Apollo Group 16
  • 17. Screencast APOLLO GROUP © 2012 Apollo Group 17
  • 18. Workflow Unknown system netboots APOLLO GROUP © 2012 Apollo Group 18
  • 19. Workflow Unknown system netboots Boot into HP SmartStart Scripting Toolkit APOLLO GROUP © 2012 Apollo Group 19
  • 20. Workflow Unknown system netboots Boot into HP SmartStart Scripting Toolkit Gather hardware information (CPU/RAM/disk/NIC) via hpdiscovery APOLLO GROUP © 2012 Apollo Group 20
  • 21. Workflow Unknown system netboots Boot into HP SmartStart Scripting Toolkit Gather hardware information (CPU/RAM/disk/NIC) via hpdiscovery If this is HP hardware, then –Update firmware –Configure BIOS –Configure iLO –Configure RAID APOLLO GROUP © 2012 Apollo Group 21
  • 22. Workflow Unknown system netboots Boot into HP SmartStart Scripting Toolkit Gather hardware information (CPU/RAM/disk/NIC) via hpdiscovery If this is HP hardware, then –Update firmware –Configure BIOS –Configure iLO –Configure RAID cobbler-register to the hardware profile APOLLO GROUP © 2012 Apollo Group 22
  • 23. Workflow Unknown system netboots Boot into HP SmartStart Scripting Toolkit Gather hardware information (CPU/RAM/disk/NIC) via hpdiscovery If this is HP hardware, then –Update firmware –Configure BIOS –Configure iLO –Configure RAID cobbler-register to the hardware profile System reboots APOLLO GROUP © 2012 Apollo Group 23
  • 24. Workflow Modify Cobbler system profile, giving it an identity (hostname, IP, OS metadata) APOLLO GROUP © 2012 Apollo Group 24
  • 25. Workflow Modify Cobbler system profile, giving it an identity (hostname, IP, OS metadata) Known system netboots APOLLO GROUP © 2012 Apollo Group 25
  • 26. Workflow Modify Cobbler system profile, giving it an identity (hostname, IP, OS metadata) Known system netboots Boot into OS installer APOLLO GROUP © 2012 Apollo Group 26
  • 27. Workflow Modify Cobbler system profile, giving it an identity (hostname, IP, OS metadata) Known system netboots Boot into OS installer Install OS APOLLO GROUP © 2012 Apollo Group 27
  • 28. Workflow Modify Cobbler system profile, giving it an identity (hostname, IP, OS metadata) Known system netboots Boot into OS installer Install OS Install Puppet APOLLO GROUP © 2012 Apollo Group 28
  • 29. Workflow Modify Cobbler system profile, giving it an identity (hostname, IP, OS metadata) Known system netboots Boot into OS installer Install OS Install Puppet … APOLLO GROUP © 2012 Apollo Group 29
  • 30. Workflow Modify Cobbler system profile, giving it an identity (hostname, IP, OS metadata) Known system netboots Boot into OS installer Install OS Install Puppet … Profit! APOLLO GROUP © 2012 Apollo Group 30
  • 31. APOLLO GROUP Example Code APOLLO GROUP Apollo Group © 2012 31
  • 32. Dell TFTP Config LABEL dtk-install_hadoop kernel /images/dtk-3.5.1/SA.1 append initrd=/images/dtk-3.5.1/SA.2 ramdisk_size=156482 Stage3_type=cdrom quiet DEBUG=0 share_location=192.168.1.1:/srv/nfs/ro/dtk-3.5.1 share_type=nfs selinux=0 share_opts=ro,nolock share_script=install_hadoop.sh cprofile=Hadoop ipappend 2 APOLLO GROUP © 2012 Apollo Group 32
  • 33. HP TFTP Config LABEL sstk-install_hadoop kernel /images/sstk-8.50/vmlinuz append initrd=/images/sstk-8.50/initrd.img root=/dev/ram0 rw ramdisk_size=184248 ide=nodma ide=noraid pnpbios=off network=1 sstk_mount=192.168.1.1:/srv/nfs/ro/sstk-8.50 sstk_mount_type=nfs sstk_mount_options=ro,nolock sstk_script=install_hadoop.sh cprofile=Hadoop ipappend 2 APOLLO GROUP © 2012 Apollo Group 33
  • 34. Dell Config Capture cd /opt/dell/toolkit/template/scripts /opt/dell/toolkit/template/scripts/syscap.sh /tmp/syscap /opt/dell/toolkit/template/scripts/raidcap.sh /tmp/raidcap /opt/dell/toolkit/template/scripts/raccap.sh /tmp/raccap # MegaCLI does not come with the DTK so "install" it. cp -a /opt/dell/toolkit/systems/MegaCLI/opt/MegaRAID /opt/MegaRAID /opt/MegaRAID/MegaCli/MegaCli -CfgSave -a0 -f /tmp/mega.0 APOLLO GROUP © 2012 Apollo Group 34
  • 35. HP Config Capture cd /TOOLKIT ./conrep -s -f /tmp/conrep.dat # BIOS ./hpacuscripting -c /tmp/cpqacuxe.dat # RAID ./hplpcfg /s /tmp/hplpcfg.dat # Emulex HBA ./hpqlarep /S /tmp/hpqlarep.dat # Qlogic HBA if ./ifhw /tmp/hw_discovery.dat allboards.xml "PCI:Integrated Lights-Out" 2> /dev/null ; then ./hponcfg -w /tmp/hponcfg.dat # iLO 2/3 else ./lo100cfg -o /tmp/lo100cfg.dat # LO100i fi APOLLO GROUP © 2012 Apollo Group 35
  • 36. Platform Detection *** Detecting system type *** System Information: Name : ProLiant DL360 G5 Serial : USE123D456 Arch : x86_64 LNAME : ProLiantDL360G5 SNAME : DL360 G5 Asset Tag : 01234567 APOLLO GROUP © 2012 Apollo Group 36
  • 37. Some Available Variables  HP SSSTK has a function library that sets many variables. – $PRODUCT_NAME = • "ProLiant SL170z G6" • "ProLiant DL360 G6" – $SERIAL_ID = hardware serial number – $PRODUCT_LNAME = • "ProLiantSL170zG6" • "ProLiantDL360G6" – $PRODUCT_SNAME = • "SL170z G6" • "DL360 G6" – $TOOLKIT_MNTPNT = /mnt/main – $TOOLKIT_SERVER_IP = NFS server IP – $HWDISC_FILE = /TOOLKIT/hpdiscovery.xml APOLLO GROUP © 2012 Apollo Group 37
  • 38. Inside install_hadoop.sh  Set Variables Based on Hardware Type export "`./hwquery ${HWDISC_FILE} allboards.xml SERVERNAME=SystemName`" case "${SERVERNAME}" in "ProLiant DL160 G6"* ) CONREPDAT=${TOOLKIT_MNTPNT}/data_files/dl160_conrep.dat LO100CFGDAT=${TOOLKIT_MNTPNT}/data_files/dl160_lo100cfg.dat ;; "ProLiant SL170z G6"* ) CONREPDAT="${TOOLKIT_MNTPNT}/data_files/sl170z_conrep.dat -x ${TOOLKIT_MNTPNT}/conrep_xml/conrep_SL170zg6_20100401.xml" LO100CFGDAT=${TOOLKIT_MNTPNT}/data_files/sl170z_lo100cfg.dat ;; #... APOLLO GROUP © 2012 Apollo Group 38
  • 39. Inside install_hadoop.sh #... "ProLiant DL360 G5"* ) CONREPDAT=${TOOLKIT_MNTPNT}/data_files/dl360g5_conrep.dat if ./ifhw ${HWDISC_FILE} allboards.xml "PCI:Smart Array E200i Controller" 2> /dev/null ; then HPACUDAT=${TOOLKIT_MNTPNT}/data_files/dl360g5_saE200i_cpqacuxe.dat fi if ./ifhw ${HWDISC_FILE} allboards.xml "PCI:Smart Array P400i Controller" 2> /dev/null ; then HPACUDAT=${TOOLKIT_MNTPNT}/data_files/dl360g5_saP400i_cpqacuxe.dat fi HPONCFGDAT=${TOOLKIT_MNTPNT}/data_files/dl360g5_hponcfg.dat ;; esac APOLLO GROUP © 2012 Apollo Group 39
  • 40. Inside install_hadoop.sh if [ -n "$CONREPDAT" ] ; then echo "** Applying BIOS Configuration" ./conrep -l -f ${CONREPDAT} fi if [ -n "$HPACUDAT" ] ; then echo "** Clearing RAID Configuration" ./hpacucli/hpacuscripting -i ${HPACUDAT}_clear; sleep 5 echo "** Applying RAID Configuration" ./hpacucli/hpacuscripting -i ${HPACUDAT} fi if [ -n "$LO100CFGDAT" ] ; then echo "** Applying BMC Configuration"; ./lo100cfg -i ${LO100CFGDAT} elif [ -n "$HPONCFGDAT" ] ; then echo "** Applying iLO Configuration"; ./hponcfg -f ${HPONCFGDAT} fi APOLLO GROUP © 2012 Apollo Group 40
  • 41. Register with Buildsystem echo "** Registering with cobbler" # Koan does not come with SSSTK, so "install" it. ${TOOLKIT_MNTPNT}/koan/install # cprofile is set via kernel boot parameter and points at part of a # Cobbler profile name. # SERIAL_ID and PRODUCT_LNAME are set via SSSTK. # PRODUCT_LNAME = ProLiantSL170zG6, ProLiantDL360G6, etc. # SERIAL_ID = hardware serial number echo "** Registering to profile ${cprofile}-${PRODUCT_LNAME}" cobbler-register --server=${TOOLKIT_SERVER_IP} --fqdn=${SERIAL_ID} --profile=${cprofile}-${PRODUCT_LNAME} --batch APOLLO GROUP © 2012 Apollo Group 41
  • 42. Clear the HP RAID Controller $ cat dl360g5_saE200i_cpqacuxe.dat_clear ; Version: 8.50.6.0 ; http://h30499.www3.hp.com/t5/ProLiant-Servers-ML-DL- SL/CPQACUXE-reset-utility-within-WinPE/td-p/3939475 Action= Reconfigure Method= Custom Controller= SLOT 0 ClearConfigurationWithDataLoss= Yes APOLLO GROUP © 2012 Apollo Group 42
  • 43. Configure the HP RAID Controller $ cat dl360g5_saE200i_cpqacuxe.dat ; Array Specifications ; Version: 8.50.6.0 Array= A Action= Configure ; Array Drive Type is SAS Method= Custom ; 1I:1:1 (72 GB), 1I:1:2 (72 GB) ; Controller Specifications Drive= 1I:1:1, 1I:1:2 ; Controller HP Smart Array E200i OnlineSpare= No ; Firmware Version 1.82 ; Logical Drive Specifications Controller= SLOT 0 LogicalDrive= 1 ReadCache= 100 RAID= 1 WriteCache= 0 Size= 69973 RebuildPriority= Medium Sectors= 32 ExpandPriority= Medium StripeSize= 128 SurfaceScanDelay= 15 ArrayAccelerator= Enabled DriveWriteCache= Disabled APOLLO GROUP © 2012 Apollo Group 43
  • 44. Error Handling You may have to test for any failures when applying configurations. When reusing HP hardware, adding a user to the BMC that already exists will cause a failure to apply all of the configuration. Newer firmware can have different config options that will cause an older capture to fail. APOLLO GROUP © 2012 Apollo Group 44
  • 45. Summary Firmware Hardware Firmware Buildsystem Update Discovery Configuration Registration APOLLO GROUP © 2012 Apollo Group 45
  • 46. Links  HP SmartStart Scripting Toolkit http://h18013.www1.hp.com/products/servers/management/toolkit/index.html  Dell OpenManage Deployment Toolkit http://en.community.dell.com/techcenter/systems-management/w/wiki/1772.dell- openmanage-deployment-toolkit.aspx  IBM ServerGuide Scripting Toolkit http://www-03.ibm.com/systems/be/management/sgstk/  Fujitsu ServerView Scripting Toolkit http://www.fujitsu.com/fts/products/computing/servers/primergy/management/de ploy/  Cobbler - Linux Installation Server http://cobbler.github.com/  LSI MegaRAID MegaCLI http://www.lsi.com/downloads/Public/MegaRAID%20Common%20Files/8.02.24_ MegaCLI.zip APOLLO GROUP © 2012 Apollo Group 46
  • 47. Contact  https://intelligentsysadmin.wordpress.com/  https://github.com/razorsedge  http://forge.puppetlabs.com/razorsedge APOLLO GROUP © 2012 Apollo Group 47
  • 48. APOLLO GROUP Questions? APOLLO GROUP Apollo Group © 2012 48