Scripting WS-MAN Firmware Updates This Dell Technical White Paper provides information about scripting WS-MAN Firmware Inventory and Firmware Updates on Dell PowerEdge servers with iDRAC. Author(s) Chris A.
This document is for informational purposes only and may contain typographical errors and technical inaccuracies. The content is provided as is, without express or implied warranties of any kind. © 2012 Dell Inc. All rights reserved. Dell and its affiliates cannot be responsible for errors or omissions in typography or photography. Dell, the Dell logo, and PowerEdge are trademarks of Dell Inc.
Executive summary This paper describes how to automate firmware inventory and updates through a secure and standards-based Web Services-Management (WS-MAN) service on Dell™ PowerEdge™ servers with Integrated Dell Remote Access Controller with Lifecycle Controller (iDRAC).
Contents Introduction....................................................................................... 5 Before You Begin ................................................................................. 5 Performing a firmware update ................................................................ 6 Install firmware information on the system ............................................... 7 Begin the update process ....................................................................
Introduction WS-MAN provides secure, simple, scriptable, and standards-based remote management capabilities on Dell PowerEdge servers equipped with iDRAC. WS-MAN is a network transport service that enables a user to access a number of Common Information Model (CIM) data access and methods supported by the target platform. WS-MAN can be scripted using command line interfaces (CLI) such as WinRM on Microsoft® Windows® systems and WS-MAN CLI on Linux systems.
1 Administrator 3 Update Repository WSMAN over SSL FTP / HTTP / TFTP / NFS / CIFS Download 2 Target System Figure 1 - Environment Diagram Figure 2 shows an example of the target environment. It starts with the administrator (1) running scripts to send WS-MAN commands through an SSL connection. The target system (2) is equipped with iDRAC, which is a management controller with advanced capabilities.
Install firmware information on the system 1. Run fw_inventory.py –h to see Usage options. ./fw_inventory.py --help Usage: fw_inventory.py [options] Options: -h, --help show this help message and exit -v, --verbose Prints information verbosely -f FWUPDATE, --firmware component=FWUPDATE prints component information(nic, bios, idrac_fw, drivers_pack, power_supply, raid, lifecycle_controller, diagnostics) 2.
(update) Controller FRMW Installed 25227 1.00.00 Integrated Dell Remote Access 9(rollback) Controller FRMW Available 25227 1.00.00 Integrated Dell Remote Access 10(update) APAC Diagnostics Utility Installed 25806 4216.1 Dell Enterprise UEFI Diagnostics 11(update) Installed 28897 1.0.0.3551 Dell Lifecycle Controller 2, APAC 1.0.0.3551, X69 12(update) FRMW Installed 27763 0.5.3 System CPLD 13(update) APAC Installed 18981 7.0.0.38 Dell OS Driver Pack, v.7.0.0.
Sample output: [Firmware Component Inventory List] b - bios dp - drivers_pack i - idrac_fw n - nic p - power_supply r - raid lc - lifecycle_controller d - diagnostics a - all Each entry in the output lists a device that can either be updated to firmware located on a network share (ftp/http/tftp/nfs/cifs) or rolled back to a previous firmware version stored on the iDRAC. 5. Select the component alias (from step 3) for the component you would like to inventory.
Once the firmware inventory is listed, you can either continue with the firmware update or quit. To perform a firmware update, select one of the options that are available for update. The script will prompt for the location of the Dell Update Package (DUP) to be used.
1 = Forceful shutdown and reboot 2 = Graceful shutdown and reboot (Recommended) 3 = Forceful shutdown if graceful shutdown does not succeed 4 = No reboot 7. The script asks for permission to delete all existing jobs in iDRAC. It is recommended to choose yes for a clean start. Erase all previous jobs stored in the iDRAC? (yes/no) yes Deleting all iDRAC jobs Completed job deletion 8. The script requests a start time for the job. The job can be scheduled immediately or for a future time.
Check the status of the reboot job and the nic update job by using the fw_pull.py script. Sample output of failed command: The command failed with error code: CMPI_RC_ERR_INVALID_PARAMETER If the command fails, check that the InstanceID you provided is accurate by comparing it with output from the previous step. Remember that characters are case sensitive. Also, check the accuracy of the source URI to ensure it is accessible with proper permission. Once verified, try the command again.
- reboot for nic update (0) exit out Enter a number to poll JobID or to exit. (1,2,etc): 1 JobStatus = Scheduled Message = Task successfully scheduled. MessageArguments = NA MessageID = JCP001 Name = update:DCIM:INSTALLED#701__NIC.Integrated.1-2-1 Repeat get JobStatus command for JID_267336093962? (yes, no): 3. Select the number corresponding to your job to display the current status. The script performs two step executions. The first step is to monitor the status of the job associated with the update.
[Firmware Component Inventory List] b - bios dp - drivers_pack i - idrac_fw n - nic p - power_supply r - raid lc - lifecycle_controller d - diagnostics a - all View component firmware OPTION Component 1(rollback) FRMW - 18:03:73:0F:45:48 2(update) FRMW - 18:03:73:0F:45:48 3(rollback) FRMW - 18:03:73:0F:45:48 4(update) FRMW - 18:03:73:0F:45:48 5(rollback) FRMW - 18:03:73:0F:45:48 6(rollback) FRMW - 18:03:73:0F:45:49 7(rollback) FRMW - 18:03:73:0F:45:49 8(rollback) FRMW - 18:03:73:0F:45:48 9(update) FRMW - 18
Exceptions One exception to the process described in the previous sections is that certain updates do not require a reboot and scheduling. After the update package is downloaded, it is immediately applied to the device. This exception applies to Lifecycle Controller, Diagnostics, and OS Driver Pack firmware updates. System CPLD Updates are currently not supported by this method.