dellemc.openmanage.redfish_firmware (9.1.0) — module

To perform a component firmware update using the image file available on the local or remote system

| "added in version" 2.1.0 of dellemc.openmanage"

Authors: Felix Stephen (@felixs88), Husniya Hameed (@husniya_hameed), Shivam Sharma (@Shivam-Sharma), Kritika Bhateja (@Kritika_Bhateja), Abhishek Sinha (@ABHISHEK-SINHA10)

Install collection

Install with ansible-galaxy collection install dellemc.openmanage:==9.1.0


Add to requirements.yml

  collections:
    - name: dellemc.openmanage
      version: 9.1.0

Description

This module allows the firmware update of only one component at a time. If the module is run for more than one component, an error message is returned.

Depending on the component, the firmware update is applied after an automatic or manual reboot.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
---
- name: Update the firmware from a single executable file available in a HTTP protocol
  dellemc.openmanage.redfish_firmware:
    baseuri: "192.168.0.1"
    username: "user_name"
    password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    image_uri: "http://192.168.0.2/firmware_repo/component.exe"
    transfer_protocol: "HTTP"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update the firmware from a single executable file available in a HTTP protocol with job_Wait
  dellemc.openmanage.redfish_firmware:
    baseuri: "192.168.0.1"
    username: "user_name"
    password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    image_uri: "http://192.168.0.2/firmware_repo/component.exe"
    transfer_protocol: "HTTP"
    job_wait: true
    job_wait_timeout: 600
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update the firmware from a single executable file available in a local path
  dellemc.openmanage.redfish_firmware:
    baseuri: "192.168.0.1"
    username: "user_name"
    password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    image_uri: "/home/firmware_repo/component.exe"

Inputs

    
baseuri:
    description: IP address of the target out-of-band controller. For example- <ipaddress>:<port>.
    required: true
    type: str

ca_path:
    description:
    - The Privacy Enhanced Mail (PEM) file that contains a CA certificate to be used for
      the validation.
    type: path
    version_added: 5.0.0
    version_added_collection: dellemc.openmanage

timeout:
    default: 30
    description: The socket level timeout in seconds.
    type: int
    version_added: 5.0.0
    version_added_collection: dellemc.openmanage

job_wait:
    default: true
    description: Provides the option to wait for job completion.
    type: bool

password:
    description:
    - Password of the target out-of-band controller.
    - If the password is not provided, then the environment variable C(IDRAC_PASSWORD)
      is used.
    - 'Example: export IDRAC_PASSWORD=password'
    required: true
    type: str

username:
    description:
    - Username of the target out-of-band controller.
    - If the username is not provided, then the environment variable C(IDRAC_USERNAME)
      is used.
    - 'Example: export IDRAC_USERNAME=username'
    required: true
    type: str

image_uri:
    description:
    - Firmware Image location URI or local path.
    - For example- U(http://<web_address>/components.exe) or /home/firmware_repo/component.exe.
    required: true
    type: str

validate_certs:
    default: true
    description:
    - If C(false), the SSL certificates will not be validated.
    - Configure C(false) only on personally controlled sites where self-signed certificates
      are used.
    - Prior to collection version C(5.0.0), the I(validate_certs) is C(false) by default.
    type: bool
    version_added: 5.0.0
    version_added_collection: dellemc.openmanage

job_wait_timeout:
    default: 3600
    description:
    - The maximum wait time of I(job_wait) in seconds. The job is tracked only for this
      duration.
    - This option is applicable when I(job_wait) is C(true).
    - 'Note: If a firmware update needs a reboot, the job will get scheduled and waits
      for no of seconds specfied in I(job_wait_time). to reduce the wait time either give
      I(job_wait_time) minimum or make I(job_wait)as false and retrigger.'
    type: int

transfer_protocol:
    choices:
    - CIFS
    - FTP
    - HTTP
    - HTTPS
    - NSF
    - OEM
    - SCP
    - SFTP
    - TFTP
    default: HTTP
    description: Protocol used to transfer the firmware image file. Applicable for URI
      based update.
    type: str

Outputs

error_info:
  description: Details of http error.
  returned: on http error
  sample:
    error:
      '@Message.ExtendedInfo':
      - Message: Unable to complete the operation because the JSON data format entered
          is invalid.
        Resolution: 'Do the following and the retry the operation: 1) Enter the correct
          JSON data format and retry the operation. 2) Make sure that no syntax error
          is present in JSON data format. 3) Make sure that a duplicate key is not
          present in JSON data format.'
        Severity: Critical
      - Message: The request body submitted was malformed JSON and could not be parsed
          by the receiving service.
        Resolution: Ensure that the request body is valid JSON and resubmit the request.
        Severity: Critical
      code: Base.1.2.GeneralError
      message: A general error has occurred. See ExtendedInfo for more information.
  type: dict
msg:
  description: Overall status of the firmware update task.
  returned: always
  sample: Successfully updated the firmware.
  type: str
task:
  description: Returns ID and URI of the created task.
  returned: success
  sample:
    id: JID_XXXXXXXXXXXX
    uri: /redfish/v1/TaskService/Tasks/JID_XXXXXXXXXXXX
  type: dict