dell / iDRAC-Redfish-Scripting

Python and PowerShell scripting for Dell EMC PowerEdge iDRAC REST API with DMTF Redfish
GNU General Public License v2.0
606 stars 279 forks source link

Mount Virtual media to update BIOS firmware is stuck at keyboard input "Press Enter" #119

Closed boopathid closed 4 years ago

boopathid commented 4 years ago

Used SetNextOneTimeBootVirtualMediaDeviceOemREDFISH.py to update the firmwares. Mounted virtual media, set the boot to virtual media. After the powercycle, the update finishes successfully but waits at screen asking for user to press "Enter" from keyboard to finish BIOS update. I issued powercycle again but it didnt update BIOS firmware. Is there any API call or method to solve this issue using Python ?

texroemer commented 4 years ago

Hi @boopathid

Python script SetNextOneTimeBootVirtualMediaDeviceOemREDFISH.py only sets next onetime boot to either virtual floppy or virtual CD, it doesn't update firmware for any device. Did you modify the script or was a separate script called to update the BIOS firmware.

Do you also have a screen capture where it's prompting you to press enter? Firmware update shouldn't prompt you to press enter, i assume there must be an error happening in POST which is asking for interaction.

boopathid commented 4 years ago

Hello @texroemer, I have modified the script. Here what I have done, 1) Mount the "PER640_BOOTABLE_20.04.00.127.iso" to Virtual CD Using POST https:///redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia/CD/Actions/VirtualMedia.InsertMedia

2) Using SetNextOneTimeBootVirtualMediaDeviceOemREDFISH.py , set onetime boot to Virtual CD.

3) Reboot the server.

Upon reboot, the server boots into Virtual CD and starts the upgrade (meant by the bootable ISO). It finishes the upgrade but waits for user input "Enter" though keyboard. (Checked the iDrac UI and it was waiting for the "Enter" key ) as in attached screenshot.

I tried issuing another "PowerCycle" at this time, thinking it will continue from where it left off. Unfortunately the server Boots up without updating BIOS firmware. When I manually pressed "Enter" key from the keyboard, it went ahead and continued the BIOS firmware update.

So my question is, is there anyway we can script this press "Enter" key function ? Please advice.

Dell iDrac Issue
texroemer commented 4 years ago

Thanks for the image, this helps. You created a custom ISO using DRM to perform the updates. I don't know if it's supported to create an ISO with no user interaction since i don't work on DRM features at Dell. This would need be a question asked on Dell support or community sites where someone from the support team will be able to help you.

boopathid commented 4 years ago

Actually its a ISO downloaded from Dell .. https://www.dell.com/support/home/en-us/drivers/driversdetails?driverid=2fx08 .

Might be Dell has it built this ISO that way to manually press the "Enter" button. But actually, the ISO has other firmwares (iDrac, LSI controller) which gets updated successfully without needing to press "Enter"

texroemer commented 4 years ago

Yes, ISO seems to be designed that way due to the server needing a reboot to the apply the BIOS update. iDRAC doesn't need a reboot to apply the update, reason why it doesn't prompt for user interaction.

In your environment, are you looking to update servers to latest firmware for all devices? If yes, have you looked into using iDRAC repository update feature? This feature points a Dell server to a firmware repository, checks the firmware version of all devices in the server against the repository packages and if it detects any version difference, it updates that device.

See script "InstallFromRepositoryREDFISH.py" for more details. Example below shows executing the script using Dell HTTP firmware repository.

InstallFromRepositoryREDFISH.py -ip 192.168.0.120 -u root -p calvin -i y --ipaddress 143.166.147.76 --sharetype HTTP --applyupdate True --rebootneeded True

boopathid commented 4 years ago

We have requirements to be on Specific version of Firmwares to comply security and internal policies. So we dont always update latest and greatest whenever Dell comes up with new version. Usually it takes a while to get vetted out from audit teams for us to proceed with updates. Thats why we picked ISO than the repo.

And also, iDrac has no internet connection or outgoing traffic. It has to be done locally mounted or internal Share drive.

texroemer commented 4 years ago

Ok, makes sense based off the environment you are in.