Eseguire l’aggiornamento di un host ESXi

Pubblicità

Premessa

Esistono diverse modalità per eseguire l’aggiornamento di ESXi; in questa breve guida vedremo come aggiornare il nostro ambiente all’ultima versione disponibile o a una a nostra discrezione.

In questa guida prenderemo in esame la procedura da riga di comando (shell ssh ESXi), tralasciando eventuali connessioni a vCenter. Tratteremo in sostanza l’aggiornamento diretto di un host ESXi.

Prendere le dovute precauzioni nel caso di ambienti produttivi: noi procederemo ad aggiornare un piccolo ambiente di test.

Attività di aggiornamento

Eseguire l’accesso all’interfaccia web e, tra i servizi, abilitare l’accesso SSH (che per ragioni di sicurezza è bene tenere sempre disattivato durante la normale attività).

Una volta abilitato il servizio possiamo avviare una sessione SSH tramite powershell/putty/console (scegliete quello che fa meglio al vostro caso).

La prima cosa da fare è abilitare il traffico httpClient sul firewall dell’host ESXi:

esxcli network firewall ruleset set -e true -r httpClient

Una volta abilitato il traffico possiamo visualizzare un elenco di tutte le versioni ESXi disponibili con il seguente comando:

esxcli software sources profile list -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml

Attendere la risposta da parte del sistema; entro 30 secondi dovreste essere in grado di visualizzare una schermata tipo la seguente:

Se vogliamo concentrarci solo su una versione particolare, ad esempio ESXi 8.0, possiamo eseguire il seguente comando filtrando con il “grep” i risultati:

esxcli software sources profile list -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml | grep ESXi-8.0U

Per aggiornare il sistema ad esempio alla versione ESXi-8.0U2c-23825572-standard sarà sufficiente eseguire il seguente comando:

esxcli software profile update -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml -p ESXi-8.0U2c-23825572-standard

Attendere pazientemente il termine delle operazioni e, se la procedura andrà correttamente a buon fine, otterrete il seguente risultato:

Potrebbe essere che la procedura non va a buon fine per errori che potrebbero dipendere dal sistema in uso. Il più frequente è il “no space left on device” che vi informa della mancanza di spazio sullo storage per poter eseguire l’aggiornamento.

Ora, non rimane che riavviare il sistema. La procedura corretta sarebbe quella di mettere in maintenance l’host ESXi, spostare le macchine virtuali su un altro host manualmente (o via DSR), oppure spegnere le macchine virtuali, altrimenti la modalità maintenance non verrà mai attivata. A fine articolo metterò comunque la procedura corretta da seguire.

Per semplificare le operazioni di questo aggiornamento su un ambiente di test si potrà eseguire il riavvio dell’host ESXi dalla GUI web:

Una volta eseguito il reboot, le macchine virtuali si riavvieranno automaticamente se avete gestito l’autostart, altrimenti dovranno essere riavviate a mano.

L’esito dell’operazione di aggiornamento può essere visualizzato direttamente dalla GUI web:

Procedura corretta di reboot dell’host ESXi: maintenance mode via SSH

Per eseguire correttamente il reboot dell’host ESXi come documentato da VMware / Broadcom è necessario attivare la maintenance mode.

Via SSH è possibile attivare questa modalità tramite il seguente comando (case sensitive):

esxcli system maintenanceMode set --enable yes

Ora, il comando appena eseguito rimarrà in attesa che siano soddisfatte le seguenti condizioni:

  • tutte le macchine virtuali siano spente manualmente;
  • nessuna macchina virtuale sia più “running” sull’host corrente, quindi andranno spostate manualmente su un altro host oppure il DRS provvederà a farlo se configurato.

Le condizioni sopra elencate sono in “OR”, per cui o una o l’altra.

Una volta che l’host sarà correttamente entrato in maintenance mode, possiamo eseguire il riavvio direttamente via CLI con il seguente comando:

esxcli system shutdown reboot -d 60 -r "Installing patches"

Dettaglio dei parametri:

  • -d > timeout in secondi prima di eseguire l’operazione di reboot (minimo 10)
  • -r > motivo del reboot (reason) così da avere traccia nei log

Una volta completato il riavvio, va tolto l’host dalla maintenance mode e può essere ripreso il normale funzionamento:

esxcli system maintenanceMode set --enable no

Ricordatevi di disabilitare la connessione SSH al termine delle operazioni.

Tag

Pubblicità