سیستم عامل iLO را از طریق redfish API آپلود کنید



آیا کسی می تواند به من اشاره کند که ممکن است چه کاری را اشتباه انجام دهم؟ من هم با ilo5_278.fwpkg و هم ilo5_278.bin استخراج شده را امتحان کردم. من همان خروجی را می گیرم:

{ “error”: { “code”: “iLO.0.10.ExtendedInfo”, “message”: “برای اطلاعات بیشتر به @Message.ExtendedInfo مراجعه کنید.”, “@Message.ExtendedInfo”: [
{
“MessageId”: “iLO.2.14.UpdateInvalidfile”
}
]
} }

من استفاده می کنم:

# دریافت شناسه جلسه OneView SERVER=my-fqdn.org ACTV=$(python -c “import urllib, sys; print urllib.quote(sys.argv[1])”‘serverName’ = ‘${SERVER}’\””) UUID=$(curl –insecure –header “X-API-Version: ${currentVersion}” –header “auth: ${sessionID}” –silent \ –درخواست دریافت ${OneView}/rest/server-hardware?filter=${ACTV} | jq -r ‘.members[] | .uuid’}) خواندن iLOSSO iLOAuth <<< $(curl --silent --insecure --header "X-API-Version: ${currentVersion}" --header "auth: ${sessionID}" \ --request دریافت ${OneView}/rest/server-hardware/${UUID}/remoteConsoleUrl | \ jq -r '.remoteConsoleUrl ' | sed -e 's|hplocons|https|' -e 's|addr=||' \ -e 's|^\(.*\)&sessionkey=\(.*\)$|\1 \2|') FIL=ilo5_278.fwpkg # این فایل میان‌افزار بزرگ‌تر از 32 مگابایت است. بنابراین، باید آن را تقسیم کنید: dd if=${FIL} of=${FIL}.part1 bs=1m count=32 dd if=${FIL} of=${FIL}.part2 bs=1m skip=32 # فایل ها را در یک وب سرور DIR=' برای f در {1..2} قرار دهید. do DATA='{"ImageURI":"'${DIR}/${FIL}.part${f}'","UpdateRepository":true,"UpdateTarget":false,"ComponentFileName":"'${FIL }',""Section":'${f}'}' curl --silent --insecure --max-time 1200 --header "accept: application/json" \ --header "X-Auth-Token: ${iLOAuth}" --header "content-type: application/json; charset=utf-8" \ --data ${DATA} -- request POST ${iLOSSO}/redfish/v1/UpdateService/Actions/Oem/ Hpe/HpeiLOUpdateServiceExt.AddFromUri | jq -r '.' انجام شده

منبع: https://community.hpe.com/t5/proliant-servers-ml-dl-sl/upload-ilo-firmware-via-redfish-api/m-p/7179983#M180143