dell / dellemc-openmanage-ansible-modules

Dell OpenManage Ansible Modules
GNU General Public License v3.0
339 stars 163 forks source link

Update firmware ends as successful but still not updated #59

Closed ibt23sec5 closed 5 years ago

ibt23sec5 commented 5 years ago

Model: PowerEdge R640 IDRAC firmware version: 3.21.26.22

Following play ends with success, but the returned message in verbose mode says: Import of Server Configuration Profile operation completed with errors And the version of firmware still same as before. Playbook:

  idrac_firmware:
    idrac_ip: "{{ idrac_ip }}"
    idrac_user: "{{ idrac_user }}"
    idrac_password: "{{ idrac_password }}"
    share_name: "{{ nfs_image_path }}"
    share_mnt: "{{ nfs_mount_dir }}"
    reboot: True
    job_wait: True
    catalog_file_name: "Catalog.xml"

Case details:

Complete output:

ok: [xxxxxxxxxx] => {
    "changed": false, 
    "invocation": {
        "module_args": {
            "catalog_file_name": "Catalog.xml", 
            "idrac_ip": "xxx.xxx.xxx.xxx", 
            "idrac_password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", 
            "idrac_port": 443, 
            "idrac_user": "xxxxxx", 
            "job_wait": true, 
            "reboot": true, 
            "share_mnt": "/mnt/nfs-share/", 
            "share_name": "xxxxxxx:/data/nfs-share", 
            "share_password": null, 
            "share_user": null
        }
    }, 
    "msg": "Successfully updated the firmware.", 
    "update_status": {
        "changed": true, 
        "update_status": {
            "@odata.context": "/redfish/v1/$metadata#DellJob.DellJob", 
            "@odata.id": "/redfish/v1/Managers/iDRAC.Embedded.1/Jobs/JID_616275530512", 
            "@odata.type": "#DellJob.v1_0_0.DellJob", 
            "CompletionTime": "2019-06-27T09:27:32", 
            "Description": "Job Instance", 
            "EndTime": null, 
            "Id": "JID_616275530512", 
            "JobState": "Completed", 
            "JobType": "ImportConfiguration", 
            "Message": "Import of Server Configuration Profile operation completed with errors.", 
            "MessageArgs": [], 
            "MessageId": "SYS055", 
            "Name": "Import Configuration", 
            "PercentComplete": 100, 
            "StartTime": "TIME_NOW", 
            "Status": "Success", 
            "TargetSettingsURI": null, 
            "retval": true
        }
}

After digging in the Lifecycle logs, I saw many errors like: SYS252 Unable to transfer a file, FOLDER05499243M/1/iDRAC-with-Lifecycle-Controller_Firmware_VRYKT_WN64_3.32.32.32_A00.EXE, because the file is not available at the remote host location. RED006 Unable to download Update Package.

After many repeats of applying of this Play the firmware is finally updated.

Actual result: Ends with success

Estimated result: Fails with related error message

anupamaloke commented 5 years ago

@ibt23sec5, at present, the idrac_firmware module only tracks the successful completion of the Repository Update job. A repository update job just downloads the firmware update packages from the network share and stages them on iDRAC. If a iDRAC is unable to download any of the update packages then you will get error "Import of Server Configuration Profile operation completed with Errors". iDRAC may fail to download the packages due to multiple networking issues. If you frequently run into this error, then I would recommend opening a support ticket with Dell support so that this is diagnosed in detail.

Also, we will be enhancing this module to add more details on tracking individual component update in the next release.

ibt23sec5 commented 5 years ago

@anupamaloke: Ok, I see now that's a general problem of iDRAC upgrade. Thank you for the clarification.