Minientrada

Dell PowerEdge server: verificación de actualizaciones de firmware utilizando RACADM

En mi opinión, esta era la entrada que faltaba para poder cerrar el circuito: (1) verificar que actualizaciones de firmware me hacen falta instalar (lo que se puede leer como cuan lejos del ideal estoy) e (2) instalarlas desde CLI utilizando RACADM.

Una vez más, no vas a “hacer negocio” si se trata de actualizar 1 o 2 servidores solamente. Más bien esto está pensado para una situación del tipo toca actualizar firmware a 5, 10 o más servidores.

Requerimientos

Esta es la configuración necesaria para ejecutar esta guía paso a paso.

Software / versión
Un servidor corriendo Linux o el Windows Subsystem for Linux (WSL) sobre Windows 10.
Wget 1.20.1
Nginx 1.14.2 o un servidor HTTP local similar.
Gzip 1.9
RACADM 9.3.2 (pasos para su instalación en GNU/Linux)

Paso a paso

  1. Descargar la versión más reciente del catálogo de versiones de firmware desde el sitio de soporte de Dell.
  2. Descomprimir el catálogo y subirlo a nuestro servidor HTTP local.
  3. Crear un reporte comparando, las versiones de firmware instaladas actualmente en mi servidor, contra las versiones más nuevas indicadas en el catálogo.
  4. Conectarme a la iDRAC vía SSH para ver el estado de la actividad de comparación.
  5. Ver el reporte generado en el paso 3.
  6. Descargar manualmente las versiones de firmware que deseo actualizar y subirlas a nuestro servidor HTTP local.
  7. Actualizar el firmware desde CLI utilizando RACADM.

Manos a la obra

Paso 1

Desde la línea de comando de mi servidor Linux descargo la versión más reciente del catálogo.

wget http://downloads.dell.com/catalog/Catalog.gz
​
--2020-06-18 11:47:42--  http://downloads.dell.com/catalog/Catalog.gz
Resolving downloads.dell.com (downloads.dell.com)... 152.199.52.16, 2606:2800:257:1500:5604:acc6:e27d:2173
Connecting to downloads.dell.com (downloads.dell.com)|152.199.52.16|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1630726 (1.6M) [application/x-gzip]
Saving to: 'Catalog.gz'
​
Catalog.gz                            100%[=========================================================================>]   1.55M  9.52MB/s    in 0.2s
​
2020-06-18 11:47:43 (9.52 MB/s) - 'Catalog.gz' saved [1630726/1630726]
Paso 2

Descomprimo el catálogo.

gunzip Catalog.gz

Verifico lo que descomprimí.

ll Catalog
-rw-r--r-- 1 user user 27512752 Jun 11 08:30 Catalog

Y muevo el catálogo al área de contenido de mi servidor HTTP, que en mi caso es un Nginx.

sudo mv Catalog /var/www/html/
Paso 3

Ejecuto el comando RACADM para la creación del reporte comparativo.

racadm -r 10.10.10.31 -u root -p calvin update -f Catalog -t HTTP -e 10.10.10.151/ --verifycatalog --nocertwarn

Salida del comando. Importante tomar nota de la parte encerrada entre “comillas” para poder verificar el progreso de la actividad en el próximo paso.

RAC1118 : Update from repository operation has been initiated. Check the progress of the operation using "racadm jobqueue view -i JID_924347688922" com.
Paso 4

Vamos a conectarnos por SSH al iDRAC para ver como se desarrolla la actividad de creación del reporte.

ssh root@10.10.10.31
root@10.10.10.31's password:

Entonces le preguntamos a RACADM acerca del estado de la tarea.

racadm>>racadm jobqueue view -i JID_924347688922

Salida del comando mientras que aún el reporte se está generando.

---------------------------- JOB -------------------------
[Job ID=JID_924347688922]
Job Name=Repository Update
Status=Downloaded
Start Time=[Not Applicable]
Expiration Time=[Not Applicable]
Message=[RED002: Package successfully downloaded.]
Percent Complete=[NA]
----------------------------------------------------------

Salida del mismo comando cuando el reporte finalmente fue creado.

---------------------------- JOB -------------------------
[Job ID=JID_924347688922]
Job Name=Repository Update
Status=Completed
Start Time=[Not Applicable]
Expiration Time=[Not Applicable]
Message=[RED001: Job completed successfully.]
Percent Complete=[100]
----------------------------------------------------------

Podemos cerrar la sesión SSH para continuar con el siguiente paso.

racadm>>exit
Connection to 10.10.10.31 closed.
Paso 5

Finalmente vamos a revisar el reporte.

racadm -r 10.10.10.31 -u root -p calvin update viewreport --nocertwarn
ComponentType     = Application
ElementName       = Dell EMC iDRAC Service Module Embedded Package v3.5.1
FQDD              = ServiceModule.Embedded.1
Current Version   = 3.4.0
Available Version = 3.5.1
-------------------------------------------------------------------
ComponentType     = Application
ElementName       = OS COLLECTOR, v5.0
FQDD              = OSCollector.Embedded.1
Current Version   = 3.0
Available Version = 5.0
-------------------------------------------------------------------
ComponentType     = Application
ElementName       = Dell 64 Bit uEFI Diagnostics, version 4301
FQDD              = Diagnostics.Embedded.1:LC.Embedded.1
Current Version   = 4301A34
Available Version = 4301A42
-------------------------------------------------------------------
ComponentType     = Firmware
ElementName       = Non-expander Storage Backplane Firmware
FQDD              = Enclosure.Internal.0-1:RAID.Integrated.1-1
FQDD              = C
Current Version   = 4.32
Available Version = 4.35
-------------------------------------------------------------------
ComponentType     = Firmware
ElementName       = Dell 12Gbps HBA firmware version 16.17.01.00
FQDD              = NonRAID.Slot.1-1
FQDD              = C
Current Version   = 16.17.00.05
Available Version = 16.17.01.00
-------------------------------------------------------------------
ComponentType     = BIOS
ElementName       = Dell EMC Server PowerEdge BIOS R740/R740xd/R640/R940/7920R Version 2.6.4
FQDD              = BIOS.Setup.1-1
Current Version   = 2.4.8
Available Version = 2.6.4
-------------------------------------------------------------------
ComponentType     = Firmware
ElementName       = Broadcom NetXtreme-E Network Device Firmware 21.6
FQDD              = NIC.Slot.4-2-1
Current Version   = 21.40.25.31
Available Version = 21.60.22.11
-------------------------------------------------------------------
ComponentType     = Firmware
ElementName       = Broadcom NetXtreme network device firmware, 21.6
FQDD              = NIC.Integrated.1-4-1
Current Version   = 21.40.21
Available Version = 21.60.2
-------------------------------------------------------------------
Paso 6

Tocaría ahora ir al sitio de soporte de Dell para descargar el firmware que quiero actualizar y subirlo a nuestro sitio HTTP local. Similar a lo que te indicaba en el paso 2.

Paso 7

Para finalizar podes utilizar la entrada Actualizando Firmware utilizando RACADM update para actualizar el firmware de tus servidores. También puede interesarte ver como realizar la actualización desatendida de varios servidores a la vez utilizando Python.

Disclaimer: IMPORTANTE utiliza esta información bajo tu responsabilidad, no me hago responsable de los resultados. No aplicar en ambiente productivo (1) sin haberlo probado antes y (2) sin tener copia de seguridad.

Anuncio publicitario
Minientrada

Dell PowerEdge server: actualización de firmware utilizando RACADM update

En una entrada anterior explicaba como actualizar el firmware de un servidor utilizando el ISO booteable. Es una opción muy interesante, el único tema es que este ISO no se actualiza todos los días. Con lo cual puede ocurrir que, desde la última versión disponible del ISO a hoy, existan nuevas versiones de firmware de uno o más componentes que vas a tener que actualizar a mano.

Planteado el problema voy a explicar como actualizar desde CLI mediante RACADM el firmware de un dispositivo, utilizando la última versión disponible.

Pero antes de nada un comentario importante. Realizar la actualización de este modo solo justifica si tenemos por delante la misión de ejecutarlo sobre 5, 10 o más servidores. En otro caso no se si amerita, aunque una vez montado todo, es sumamente cómodo hacerlo de este modo.

Pasos que vamos a ejecutar

  1. Verificar versiones actuales de firmware con el comando swinventory. Básicamente para saber que tenemos que actualizar.
  2. Descargar la versión actualizada del firmware desde Dell EMC. En este link, en el paso 1, explican como hacerlo.
  3. Crear el recurso de red que comparta el paquete de actualización: CIFS/NFS/HTTP/HTTPS/FTP
  4. Contar con RACADM instalado. En esta entrada expliqué como instalarlo.
  5. Actualizar el firmware y comprobar como quedó todo.

Procedimiento paso a paso

Paso 1

Vamos a verificar cual es la versión actual del firmware que me interesa actualizar. En este caso los Drivers for OS Deployment.

racadm -r 10.10.10.31 -u root -p calvin swinventory --nocertwarn

La salida del comando debería verse algo así.

Please wait while the software Inventory is being fetched. Depending on the network speed, it may take sometime to complete this operation.
-------------------------SOFTWARE INVENTORY------------------------
...
ComponentType = APPLICATION
ElementName = Dell OS Driver Pack, 19.04.05, A00
FQDD = DriverPack.Embedded.1:LC.Embedded.1
InstallationDate = 2019-12-07T03:01:32Z
Current Version = 19.04.05
...

Acabamos de identificar que la versión de los Drivers for OS Deployment es la 19.04.05, A00.

Paso 2

Vamos a la página de soporte de Dell EMC y descargamos la versión actualizada.

Paso 3

Tenemos que crear un repositorio local con el paquete de actualización. En mi caso levanté un simple y sencillo servidor HTTP local, pero podrías utilizar cualquiera de estas tecnologías para compartirlo: CIFS/NFS/HTTP/HTTPS/FTP

Paso 4

Requiere tener instalado RACADM, en entradas anteriores expliqué como instalarlo en Windows y en GNU/Linux.

Paso 5

Finalmente, este es el comando que vamos a utilizar para actualizar el firmware.

racadm -r 10.10.10.31 -u root -p calvin update -f Drivers-for-OS-Deployment_Application_6GCV7_WN64_19.12.05_A00.EXE -l http://10.10.10.100/

-r 10.10.10.31: dirección IP de iDRAC.

-u root: usuario de iDRAC.

-p calvin: contraseña de acceso al iDRAC.

update: el comando RACADM utilizado para actualizar.

-f Drivers-for-OS-Deployment_Application_6GCV7_WN64_19.12.05_A00.EXE: el nombre del paquete de actualización.

-l http://10.10.10.100/: la dirección IP del server HTTP local.

La salida del comando debería verse algo así.

RAC987: Firmware update job for Drivers-for-OS-Deployment_Application_6GCV7_WN64_19.12.05_A00.EXE is initiated. This firmware update job may take several minutes to complete depending on the
component or firmware being updated. To view the progress of the job, use the
"racadm jobqueue view" command. If the job is scheduled, the system will require a manual reboot.
To reboot the system  manually, use the "racadm serveraction powercycle" command. 

La actualización de este paquete en particular no requiere reinicio para aplicarse.

Vamos a ver la cola de tareas para chequear como viene todo.

racadm -r 10.10.10.31 -u root -p calvin jobqueue view --nocertwarn
[Job ID=JID_912968891999]
Job Name=Firmware Update: Drivers for OS Deployment
Status=Downloading
Start Time=[Not Applicable]
Expiration Time=[Not Applicable]
Message=[RED110: Downloading the Drivers-for-OS-Deployment_Application_6GCV7_WN64_19.12.05_A00.EXE update package.]
Percent Complete=[NA]

Todo va bien, desde la perspectiva del iDRAC se está descargando el paquete de actualización.

Minutos más tarde volvemos a ejecutar el mismo comando para ver la cola de tareas y comprobamos que se aplicó.

racadm -r 10.10.10.31 -u root -p calvin jobqueue view --nocertwarn
[Job ID=JID_912968891999]
Job Name=Firmware Update: Drivers for OS Deployment
Status=Completed
Start Time=[Not Applicable]
Expiration Time=[Not Applicable]
Message=[RED001: Job completed successfully.]
Percent Complete=[100]

Vamos a hacer un último chequeo utilizando el comando nuevamente el comando swinventory.

racadm -r 10.10.10.31 -u root -p calvin swinventory --nocertwarn
...
ComponentType = APPLICATION
ElementName = Dell OS Driver Pack, 19.12.05, A00
FQDD = DriverPack.Embedded.1:LC.Embedded.1
InstallationDate = 2020-06-04T13:56:19Z
Current Version = 19.12.05
...

Y validamos que la versión del OS Driver pack es la 19.12.05, A00.

Espero que esta técnica te sea útil y ¡feliz deployment!

Entradas relacionadas

Disclaimer: IMPORTANTE utiliza esta información bajo tu responsabilidad, no me hago responsable de los resultados. No aplicar en ambiente productivo (1) sin haberlo probado antes y (2) sin tener copia de seguridad.

Dell PowerEdge server: actualización de firmware utilizando RACADM y una ISO booteable

Para hacer un poco más interesante el uso de RACADM, y en plan de automatizar lo más que se pueda, me propuse ejecutar desde la CLI el upgrade de firmware de un servidor Dell PowerEdge utilizando el ISO booteable específico para el servidor.

Si te toca actualizar solo 1 o 2 servidores probablemente, el tiempo invertido en realizarlo de este modo, no compense. Pero si te pasa como a mi que en ocasiones fueron más de 30 o 40 a la vez, entonces me lo plantearía.

Requerimientos

Estas son las actividades que deben ser ejecutadas previamente:

  • Descargar el ISO booteable específico para el servidor Dell PowerEdge desde aquí.
  • Crear un recurso compartido de red donde esté el archivo .ISO para poder montarlo luego.
  • Tener instaladas las RACADM. Si aún no las tenés instaladas podes encontrar más información aquí.

Procedimiento paso a paso

Paso 1

Nota: para poder ejecutar los comandos de racadm, en Windows, deberás abrir la línea de comandos como administrador.

Verificar que no exista un recurso montado previamente.

racadm -r 10.10.10.11 -u root -p calvin remoteimage -s --nocertwarn

-r 10.10.10.11 es la dirección IP de la iDRAC del servidor Dell PowerEdge.

-u root es el usuario que utilizo para acceder a la iDRAC.

-p calvin es la contraseña del usuario que utilizo para acceder a la iDRAC.

Idealmente la salida del comando debería verse algo así, lo cual indica que no hay nada montado aún.

Remote File Share is Disabled
Paso 2

Montar el ISO booteable.

racadm -r 10.10.10.11 -u root -p calvin remoteimage -c -u usuario@dominio -p contraseña -l //192.168.10.150/Shared/PER740_BOOTABLE_20.03.00.124.ISO --nocertwarn

-u usuario@dominio es el usuario y el dominio que debo utilizar para acceder al recurso compartido.

-p es la contraseña del usuario indicado en la línea anterior.

-l //192.168.10.150/Shared/PER740_BOOTABLE_20.03.00.124.ISO se lee “//server/shared/ISO”.

La salida del comando debería verse así.

Remote Image is now Configured
Paso 3

Este paso es opcional pero sugerido. Consiste en verificar que se haya montado correctamente el ISO.

racadm -r 10.10.10.11 -u root -p calvin remoteimage -s --nocertwarn

La salida debería verse así.

Remote File Share is Enabled

ShareName //192.168.10.150/Shared/PER740_BOOTABLE_20.03.00.124.ISO
Paso 4

Indicarle al servidor que su próximo inicio deberá ser desde el ISO montado.

racadm -r 10.10.10.11 -u root -p calvin config -g cfgServerInfo -o cfgServerFirstBootDevice VCD-DVD --nocertwarn

La salida del comando debería ser esta.

Object value modified successfully
Paso 5

Reiniciar el servidor para que monte el ISO y ejecute la actualización de firmware automáticamente.

racadm -r 10.10.10.11 -u root -p calvin serveraction powercycle --nocertwarn

Si todo va bien, lo que ocurre a continuación es que el servidor se reinicia, monta el ISO, ejecuta el programa de actualización de firmware de todos los componentes y, al finalizar, se queda esperando que presionemos Enter para reiniciarse y así concluir la actividad.

IMPORTANTE: el proceso de actualización de firmware automático puede demorar bastante (¡definí bastante!) y bajo ningún punto de vista es recomendable que la interrumpas a riesgo de romper el servidor.

El proceso de upgrade automático debe ser monitoreado desde la consola del server accediendo desde el iDRAC.

Paso 6

En esta instancia el servidor ya se ha actualizado y lo reiniciamos al finalizar.

Vamos a desmontar el ISO.

racadm -r 10.10.10.11 -u root -p calvin remoteimage -d --nocertwarn

La salida debe verse así.

Disable Remote File Started. Please check status using -s
option to know Remote File Share is ENABLED or DISABLED.
Paso 7

Verifico que se haya desmontado correctamente.

racadm -r 10.10.10.11 -u root -p calvin remoteimage -s --nocertwarn

La salida del comando debería ser esta.

Remote File Share is Disabled

Como siempre, espero que esta información te sea de utilidad.

Entradas relacionadas

Disclaimer: IMPORTANTE utiliza esta información bajo tu responsabilidad. No me hago responsable de los resultados. No aplicar en ambiente productivo sin haberlo probado antes.