Mise à jour à partir du référentiel
Mise à jour du microprogramme de serveur à partir d’un référentiel distant
Présentation
XCC a présenté la mise à jour du microprogramme sur un serveur à l’aide d’un module de lots de mises à jour (Service Packs). Cette fonctionnalité permet de simplifier le processus à l’aide d’un outil client API ou Redfish unique afin de mettre à jour l’ensemble du microprogramme du système, y compris les modules de microprogramme OOB et IB. Le processus implique l’identification des modules de microprogramme qui peuvent être appliqués, le téléchargement et l’extraction de ces derniers à partir d’un serveur HTTP/HTTPS distant, leur chargement vers le stockage interne BMC par le biais d’un navigateur Web, ou bien leur montage à partir d’un répertoire partagé CIFS ou NFS.
Si vous utilisez le montage CIFS ou NFS, les fichiers de métadonnées doivent être placés dans le répertoire racine du système de fichiers partagés du réseau, avec les charges utiles de microprogramme spécifiées dans les métadonnées. L’appareil microSD du serveur permet de stocker les référentiels historiques, ce qui permet aux utilisateurs de restaurer certains niveaux du microprogramme.
Si les modules de microprogramme contiennent des fichiers de charge utile qui ne prennent pas en charge la mise à jour du microprogramme hors bande, alors le BMC démarre le serveur et le configure à partir de l’image SE intégrée et installée dans BMC avant d’effectuer la mise à jour.
Lot de mises à jour et métadonnées
Le lot de mises à jour (Services Packs) est un fichier compressé composé d’un lot de microprogrammes. Il contient un ou plusieurs modules de microprogrammes destinés aux composants d’un système. La mise à jour de XCC depuis la fonctionnalité Référentiel utilise le fichier de lot de mises à jour. Le fichier de lot non zippé contient des métadonnées et des fichiers binaires de charge utile. Les fichiers de métadonnées JSON fournissent des informations à XCC au sujet du type d’images de microprogramme que le fichier de lot contient. Les fichiers binaires de charge utile, quant à eux, fournissent ces images de microprogramme.
Référentiel du microprogramme à l’intérieur de XCC
Le lot de mises à jour peut contenir plusieurs modules de microprogramme et XCC (un appareil électronique) réserve 2 Go d’espace de sa mémoire flash pour de nouvelles fonctionnalités. Lorsqu’un nouveau lot est reçu, XCC efface les anciennes données. Certaines plateformes utilisent une carte MicroSD afin d’offrir un espace de stockage supplémentaire. XCC déplace alors le dernier lot de mises à jour vers le référentiel historique de la carte SD. Le référentiel d’historique du microprogramme peut stocker jusqu’à trois lots. Les utilisateurs peuvent utiliser la fonctionnalité de restauration du microprogramme afin de revenir à un précédent lot.
Si le lot de mises à jour inclut uniquement le module de microprogramme OOB disponible pour le système, XCC ne modifie pas l’état d’alimentation du système. Pour mettre à jour le microprogramme de l’appareil PCI, le système doit être mis sous tension.
Si le lot de mises à jour inclut le module de microprogramme IB disponible pour le système, XCC stocke l’état d’alimentation du système avant de mettre à jour et de restaurer l’état d’alimentation une fois la mise à jour du lot de mises à jour effectuée. Lors du processus de mise à jour, XCC réamorce l’hôte dans le SE intégré.
Si le lot de mises à jour inclut un niveau prérequis pour le microprogramme UEFI, et si la version UEFI actuellement installée ne satisfait pas à ce niveau, XCC met le système hors tension afin de tout d’abord effectuer une mise à jour du microprogramme UEFI.
Si le lot de mises à jour comprend un niveau prérequis pour le microprogramme XCC, et si la version XCC actuellement installée ne satisfait pas à ce niveau, XCC redémarre une fois sa mise à jour effectuée.
Mise à jour avec l’interface graphique Web
Grâce à la Mise à jour à partir du référentiel, l’utilisateur peut configurer XCC pour synchroniser le microprogramme de serveur avec un référentiel de microprogramme CIFS/NFS distant. Le référentiel du microprogramme doit contenir des modules qui comprennent des fichiers binaires et de métadonnées, ou des JSON de métadonnées de lots mises à jour ainsi que les fichiers binaires correspondants. XCC analyse les fichiers JSON de métadonnées afin de récupérer des modules de microprogramme qui prennent en charge la mise à jour OOB destinée au matériel système concerné, puis lance une mise à jour par lot.
- Coche verte : la mise à jour du microprogramme s’est terminée avec succès.
- X rouge : la mise à jour du microprogramme a échoué.
- Mise à jour : la mise à jour du microprogramme est en cours.
- Annuler : la mise à jour du microprogramme est annulée.
- En attente : la mise à niveau du microprogramme est en attente de déploiement.
Pour effectuer une mise à jour à partir du référentiel, procédez comme suit :
- Cliquez sur Connecter pour vous connecter au référentiel distant après avoir entré les informations relatives à ce dernier.
- Cliquez sur Mettre à jour pour démarrer la mise à jour par lot.
- Cliquez sur Afficher les détails pour afficher l’état de mise à jour, soit 5 catégories d’état, comme indiqué ci-dessus.
- Cliquez sur Arrêter la mise à jour pour annuler les mises à jour placées en file d’attente, et ce, dès la fin de la mise à jour du module d’installation en cours.
- Cliquez sur Déconnecter pour vous déconnecter du référentiel distant.
- Si la mise à jour nécessite le redémarrage de XClarity Controller, un message d'avertissement s'affiche. Pour plus d’informations sur le redémarrage de XClarity Controller, voir Actions d'alimentation.
Mise à jour avec Redfish
L’interface Redfish utilise un fichier de charge utile au format JSON pour faciliter la lecture par ses utilisateurs humains et l’écriture de scripts. XCC Redfish propose une API (SimpleUpdate) standard visant à extraire le fichier de lot de mises à jour à partir d’une URI via HTTP/HTTPS/SFTP/TFTP, ainsi qu’une mise à jour push HTTP Multipart pour envoyer l’UpdateService du fichier de lot de mises à jour. Vous pouvez utiliser une commande, ou un seul outil client Redfish afin d’effectuer des mises à jour de microprogramme et interroger l’état de la mise à jour.
Exemple de commande pour envoyer le fichier de lot vers XCC et générer la tâche en vue du transfert de fichier et de la vérification :
curl -s -k -u USERID:PASSW0RD-F 'UpdateParameters={"Targets":[]};type=application/json' -F 'UpdateFile=@./NY7D72-IB-320.zip;type=application/octet-stream' https://10.240.218.157:443/mfwupdate
{
"ld": "f2fd6e9d-cOa6-4b11-b9f6-69a17a1 ,
"Name": "Task f2fd6e9d-cOa6-4b11-b9f6-69a17a1 e579c",
"@odata.type": "#Task.v1_5_1. Task",
"@odata.id': "[redfish/v 1 fTaskServicefTasks/f2fd6e9d-c0a6-4b11-b9f6-69a 17a1 e579c",
"Messages": [l
"Description": "This resource represents a task for a Redfish implementation."
"StartTime": "2022-03-21 TOT 16:41 +00:00",
"TaskMonitor": "/redfish/v1fTaskSen.'ice/c069ed4a-e754-4970-ab9a-922e8a3e076b",
"@odata.context": "'redfish/v1/$metadata#Task.Task",
"@odata.etag":
"PercentCompIete": O,
"HidePayload": true,
"TaskState": "New"
}
Exemple de commande pour que l’API réponde avec l’ID de tâche pour la mise à jour du microprogramme une fois le transfert et la validation d’image terminés :
<strong className="ph b">https://10.240.218.157/
redfish/v1/TaskService/Tasks/f2fd6e9d c0a6 4b11 b9f6 69a17a1e579c</strong>
{
"@odata.etag": ,
"Name-: "Task f2fd6e9d-cOa6-4b11-b9f6-69a17a1e579c",
Task",
"IredfishNI/TaskSemcenasksff2fd6e9d-cOa6-4bI I-b9f6-69aI 7a1e579c",
"Messages": [
{
"Resolution": "Follow the referenced job and monitor the job for further updates.",
"@odata.type":
'MessageSeverity": "0K",
"MessageArgs": [
"IredfishtvI/JobService/J0bs/J0bROOOOOI-lJPdate"
],
"Messageld": "Update. 1 .O.OperationTransitionedToJob",
"Message": "The update operation has transitioned to the job at URI 'Iredfsh/vl IJobService/Jobs/JobR000001-Update'."
}
],
"Description": "This resource represents a task for a Redfish implementation.",
"HidePayIoad": true,
"StartTime":
"TaskMonitor: "'redfish1v1/TaskseNice/c069ed4a-e754-4970-ab9a-922e8a3e076b",
"TaskStatus": "0K",
"@odata.context-: "'redfish/v1/$metadata#Task.Task",
"ld": "f2fd6e9d-cOa6-4b11-b9f6-6ga17a 1 e579c",
"Percentcomplete": 100,
"EndTime": 2022-03-21
"TaskState": "Completed"
}
En interrogeant l’ID de tâche, XCC renvoie les étapes Tâche pour tous les modules de microprogramme dans le lot de mises à jour, comme indiqué ci-dessous :
https://10.240.218.157/redfish/v1/JobService/Jobs/JobR000001-Update
{
"@odata.etag": "\"1647847200776\"", "PercentComplete": 100, "@odata.type": "#Job.v1_0_7.Job",
"@odata.id": "/redfish/v1/JobService/Jobs/JobR000001-Update", "Messages": [
{
"Resolution": "None.",
"@odata.type": "#Message.v1_1_2.Message", "MessageSeverity": "OK",
"MessageArgs": [ "NY7D72-IB-320.zip",
"HardDiskDrive"
],
"MessageId": "Update.1.0.UpdateSuccessful ",
"Message": " Device 'HardDiskDrive' successfully updated with image 'NY7D72-IB-320.zip'."
},
{
"Resolution": "None.",
"@odata.type": "#Message.v1_1_2.Message", "MessageSeverity": "OK",
"MessageArgs": [ "NY7D72-IB-320.zip",
"/redfish/v1/UpdateService/FirmwareInventory/UEFI"
],
"MessageId": "Update.1.0.UpdateSuccessful",
"Message": "Device '/redfish/v1/UpdateService/FirmwareInventory/UEFI' successfully updated with image 'NY7D72-IB-320.zip'. "
},
{
"Resolution": "None.",
"@odata.type": "#Message.v1_1_2.Message", "MessageSeverity": "Critical",
"MessageArgs": [ "NY7D72-IB-320.zip",
"/redfish/v1/UpdateService/FirmwareInventory/BMC-Primary"
],
"MessageId": "Update.1.0.ApplyFailed",
"Message": "Installation of image 'NY7D72-IB-320.zip' to '/redfish/v1/UpdateService/FirmwareInventory/BMC-Primary' failed."
}
],
"Description": "This resource is used to represent a job for a Redfish implementation.",
"StartTime": "2022-03-21T07:16:58+00:00",
"Id": "JobR000001-Update",
"EndTime": "2022-03-21T07:20:00+00:00",
"@odata.context": "/redfish/v1/$metadata#Job.Job", "Steps": {
"@odata.id": "/redfish/v1/JobService/Jobs/JobR000001-Update/Steps"
},
"Name": "JobR000001-Update", "StepOrder": [
"lnvgy_fw_drives_all.samsung.pm1735.cq-cq37_anyos_comp.lvt", "lnvgy_fw_uefi_ese103a-1.00_anyos_comp.uxz", "lnvgy_fw_xcc_esx301p-0.01_anyos_comp.uxz"
],
"JobState": "Completed"
Lorsque l’étape Tâche est interrogée, XCC renvoie des informations supplémentaires aux mises à jour du microprogramme de manière individuelle :
https://10.240.218.157/redfish/v1/JobService/Jobs/JobR000001- Update/Steps/lnvgy_fw_drives_all.samsung.pm1735.cq-cq37_anyos_comp.lvt
{
"@odata.etag": "\"1647847202778\"", "PercentComplete": 1, "@odata.type": "#Job.v1_0_7.Job",
"@odata.id": "/redfish/v1/JobService/Jobs/JobR000001-Update/Steps/lnvgy_fw_drives_all.samsung.pm1735.cq- cq37_anyos_comp.lvt",
"Messages": [],
"Description": "This resource is used to represent a job for a Redfish implementation.", "StartTime": "2022-03-21T07:16:58+00:00",
"@odata.context": "/redfish/v1/$metadata#Job.Job",
"Id": "lnvgy_fw_drives_all.samsung.pm1735.cq-cq37_anyos_comp.lvt", "Name": "lnvgy_fw_drives_all.samsung.pm1735.cq-cq37_anyos_comp.lvt", "EndTime": "2022-03-21T07:20:02+00:00",
"JobState": "Completed"
Effectuez un téléchargement depuis un référentiel distant, puis effectuez la mise à jour, comme indiqué ci-dessous :
system> syncrep
syncrep [options] Launch firmware sync from remote repository options:
-t protocol to connect repository. The local type will reboot host immediately. (eg: syncrep -t samba -l url -u user -p password; syncrep -t local -l /bulk/bundle.tgz;
syncrep -t http -l http://IP/bundle.tgz)
-l location of remote repository (URL format)
-u User
-p Password
-o option (extra option string for samba and nfs mounts)
-d domain (domain for samba mount)
-q query current update status
-c cancel the sync process
-r <> firmware rollback
-gl get repository list