Enabling Remote BIOS
Remember the BIOS page the Tyan IPMI interface has?
Does your BIOS look like this even after using the default credentials
Administrator/superuser ?
Don't worry - it's because the Redfish API the BIOS page depends on getting the default password changed (probably because of CA law SB-327 and that's probably why Dell can show remote BIOS screens). All you need is curl / Python / Postman or anything that can send and receive web requests to the Redfish API
Step 1: We need to get the etag value from the server Redfish API (we will use it in the request header later)
Code:
curl -k \
--request GET 'https://192.168.0.10/redfish/v1/'
Gives us
Code:
{
"@odata.context":"/redfish/v1/$metadata#ServiceRoot.ServiceRoot",
"@odata.etag":"W/\"<some_number>\"",
"@odata.id":"/redfish/v1/",
"@odata.type":"#ServiceRoot.v1_4_0.ServiceRoot
...
}
Step 2: In the result above, note down the value for the etag
W/"<some_number>" without the <> of course
. Now remember the default Administrator:superuser username and password? We will pass it to the Redfish API and see what the problem is.
Code:
curl -k -u 'Administrator:superuser' \
--request GET 'https://192.168.0.10/redfish/v1/AccountService/Accounts/1' \
--header 'If-Match: W/"<some_number>"'
Gives us
Code:
{
"error":
{
"@Message.ExtendedInfo":
[
{
"@odata.type": "#Message.v1_0_5.Message",
"Message": "The password provided for this account must be changed before access is granted. PATCH the 'Password' property for this account located at the target URI '/redfish/v1/AccountService/Accounts/1' to complete this process.",
"MessageArgs":
[
"/redfish/v1/AccountService/Accounts/1"
],
"MessageId": "Base.1.0.0.PasswordChangeRequired",
"RelatedProperties":
[],
"Resolution": "Change the password for this account using a PATCH to the 'Password' property at the URI provided.",
"Severity": "Critical"
}
],
"code": "Base.1.0.0.PasswordChangeRequired",
"message": "The password provided for this account must be changed before access is granted. PATCH the 'Password' property for this account located at the target URI '/redfish/v1/AccountService/Accounts/1' to complete this process."
}
}
Step 3: So now let's use curl to change the default Redfish account username and password to <new_user> and <new_passwd> (Substitute accordingly)
Code:
curl -k -u 'Administrator:superuser' \
--request PATCH 'https://192.168.0.10/redfish/v1/AccountService/Accounts/1' \
--header 'If-Match: W/"<some_number>"' \
--header 'Content-Type: application/json' \
--data-raw '{"UserName":"<new_user>", "Password":"<new_passwd>" }'
This should give a HTTP 204 (no content) - but I actually got an error message, the command still worked though. Now when you use the BIOS link to login and use your new username and password, you should be able to see the BIOS settings and even change them
Hope this helps ...