dellemc.openmanage.ome_firmware – Update firmware on PowerEdge devices and its components through OpenManage Enterprise

Note

This plugin is part of the dellemc.openmanage collection (version 4.3.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install dellemc.openmanage.

To use it in a playbook, specify: dellemc.openmanage.ome_firmware.

New in version 2.0.0: of dellemc.openmanage

Synopsis

  • This module updates the firmware of PowerEdge devices and all its components through OpenManage Enterprise.

Requirements

The below requirements are needed on the host that executes this module.

  • python >= 2.7.17

Parameters

Parameter Choices/Defaults Comments
baseline_name
string
Enter the baseline name to update the firmware of all devices or list of devices that are not complaint.
This option is mutually exclusive with dup_file and device_group_names.
components
list / elements=string
List of components to be updated.
If not provided, all components applicable are considered.
This option is case sensitive.
This is applicable to device_service_tag, device_id, and baseline_name.
device_group_names
list / elements=string
Enter the name of the device group that contains the devices on which firmware needs to be updated.
This option is mutually exclusive with device_id and device_service_tag.
device_id
list / elements=integer
List of ids of the targeted device.
Either device_id or device_service_tag can be used individually or together.
This option is mutually exclusive with device_group_names and devices.
device_service_tag
list / elements=string
List of service tags of the targeted devices.
Either device_id or device_service_tag can be used individually or together.
This option is mutually exclusive with device_group_names and devices.
devices
list / elements=dictionary
This option allows to select components on each device for firmware update.
This option is mutually exclusive with dup_file, device_group_names, device_id, and device_service_tag.
components
list / elements=string
The target components to be updated. If not specified, all applicable device components are considered.
id
integer
The id of the target device to be updated.
This option is mutually exclusive with service_tag.
service_tag
string
The service tag of the target device to be updated.
This option is mutually exclusive with id.
dup_file
path
The path of the Dell Update Package (DUP) file that contains the firmware or drivers required to update the target system device or individual device components.
This is mutually exclusive with baseline_name, components, and devices.
hostname
string / required
OpenManage Enterprise or OpenManage Enterprise Modular IP address or hostname.
password
string / required
OpenManage Enterprise or OpenManage Enterprise Modular password.
port
integer
Default:
443
OpenManage Enterprise or OpenManage Enterprise Modular HTTPS port.
schedule
string
    Choices:
  • RebootNow ←
  • StageForNextReboot
Select the schedule for the firmware update.
if StageForNextReboot is chosen, the firmware will be staged and updated during the next reboot of the target device.
if RebootNow will apply the firmware updates immediately.
username
string / required
OpenManage Enterprise or OpenManage Enterprise Modular username.

Notes

Note

  • Run this module from a system that has direct access to DellEMC OpenManage Enterprise.

  • This module does not support check_mode.

Examples

---
- name: Update firmware from DUP file using device ids
  dellemc.openmanage.ome_firmware:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    device_id:
      - 11111
      - 22222
    dup_file: "/path/Chassis-System-Management_Firmware_6N9WN_WN64_1.00.01_A00.EXE"

- name: Update firmware from a DUP file using a device service tags
  dellemc.openmanage.ome_firmware:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    device_service_tag:
      - KLBR111
      - KLBR222
    dup_file: "/path/Network_Firmware_NTRW0_WN64_14.07.07_A00-00_01.EXE"

- name: Update firmware from a DUP file using a device group names
  dellemc.openmanage.ome_firmware:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    device_group_names:
      - servers
    dup_file: "/path/BIOS_87V69_WN64_2.4.7.EXE"

- name: Update firmware using baseline name
  dellemc.openmanage.ome_firmware:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    baseline_name: baseline_devices

- name: Stage firmware for the next reboot using baseline name
  dellemc.openmanage.ome_firmware:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    baseline_name: baseline_devices
    schedule: StageForNextReboot

- name: "Update firmware using baseline name and components."
  dellemc.openmanage.ome_firmwar:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    baseline_name: baseline_devices
    components:
      - BIOS

- name: Update firmware of device components from a DUP file using a device ids in a baseline
  dellemc.openmanage.ome_firmware:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    baseline_name: baseline_devices
    device_id:
      - 11111
      - 22222
    components:
      - iDRAC with Lifecycle Controller

- name: Update firmware of device components from a baseline using a device service tags under a baseline
  dellemc.openmanage.ome_firmware:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    baseline_name: baseline_devices
    device_service_tag:
      - KLBR111
      - KLBR222
    components:
      - IOM-SAS

- name: Update firmware using baseline name with a device id and required components
  dellemc.openmanage.ome_firmware:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    baseline_name: baseline_devices
    devices:
      - id: 12345
        components:
         - Lifecycle Controller
      - id: 12346
        components:
          - Enterprise UEFI Diagnostics
          - BIOS

- name: "Update firmware using baseline name with a device service tag and required components."
  dellemc.openmanage.ome_firmware:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    baseline_name: baseline_devices
    devices:
      - service_tag: ABCDE12
        components:
          - PERC H740P Adapter
          - BIOS
      - service_tag: GHIJK34
        components:
          - OS Drivers Pack

- name: "Update firmware using baseline name with a device service tag or device id and required components."
  dellemc.openmanage.ome_firmware:
    hostname: "192.168.0.1"
    username: "username"
    password: "password"
    baseline_name: baseline_devices
    devices:
      - service_tag: ABCDE12
        components:
          - BOSS-S1 Adapter
          - PowerEdge Server BIOS
      - id: 12345
        components:
          - iDRAC with Lifecycle Controller

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
error_info
dictionary
on HTTP error
Details of the HTTP Error.

Sample:
{'error': {'@Message.ExtendedInfo': [{'Message': 'Unable to process the request because an error occurred.', 'MessageArgs': [], 'MessageId': 'GEN1234', 'RelatedProperties': [], 'Resolution': 'Retry the operation. If the issue persists, contact your system administrator.', 'Severity': 'Critical'}], 'code': 'Base.1.0.GeneralError', 'message': 'A general error has occurred. See ExtendedInfo for more information.'}}
msg
string
always
Overall firmware update status.

Sample:
Successfully submitted the firmware update job.
update_status
dictionary
success
The firmware update job and progress details from the OME.

Sample:
{'Builtin': False, 'CreatedBy': 'user', 'Editable': True, 'EndTime': 'None', 'Id': 11117, 'JobDescription': 'dup test', 'JobName': 'Firmware Update Task', 'JobStatus': {'Id': 1111, 'Name': 'New'}, 'JobType': {'Id': 5, 'Internal': False, 'Name': 'Update_Task'}, 'LastRun': 'None', 'LastRunStatus': {'Id': 1111, 'Name': 'NotRun'}, 'NextRun': 'None', 'Params': [{'JobId': 11111, 'Key': 'signVerify', 'Value': 'true'}, {'JobId': 11112, 'Key': 'stagingValue', 'Value': 'false'}, {'JobId': 11113, 'Key': 'complianceUpdate', 'Value': 'false'}, {'JobId': 11114, 'Key': 'operationName', 'Value': 'INSTALL_FIRMWARE'}], 'Schedule': 'startnow', 'StartTime': 'None', 'State': 'Enabled', 'Targets': [{'Data': 'DCIM:INSTALLED#701__NIC.Mezzanine.1A-1-1=1234567654321', 'Id': 11115, 'JobId': 11116, 'TargetType': {'Id': 1000, 'Name': 'DEVICE'}}], 'UpdatedBy': 'None', 'Visible': True}


Authors

  • Felix Stephen (@felixs88)

  • Jagadeesh N V (@jagadeeshnv)