Content
Reimpostare la password dell'utente root in ESXi 7.x
A volte, per vari motivi, non riesci ad accedere alla console di gestione di ESXi perché non disponi di una password valida. Questo può accadere a causa di una violazione del sistema, un guasto del sistema, la perdita della password o se hai ereditato un ESXi senza documentazione o un controllo amministrativo adeguato. È una situazione scomoda che dovrai affrontare. Forse non immediatamente, ma quando qualcosa va storto e devi intervenire su un sistema che fino ad ora ha funzionato normalmente. Questa guida è scritta proprio per questi casi.
Backup
Prima di eseguire qualsiasi azione, è necessario creare copie di backup della configurazione, delle macchine virtuali, delle impostazioni di rete e della licenza.
- Configurazione dell'host:
vim-cmd hostsvc/firmware/backup_config
- Il comando crea un backup della configurazione dell'host. Dopo l'esecuzione, l'output includerà un URL (ad esempio,
http://
)./downloads/ .tgz - Scarica il file da questo URL utilizzando un browser web o un'utilità come
wget
ocurl
e salvalo su un dispositivo di archiviazione esterno:wget http://
/downloads/ .tgz -O /path/to/backup/ .tgz - Per ripristinare la configurazione, utilizza l'interfaccia web di vSphere Client:
- Vai a "Host" → "Configure" → "System" → "Backup/Restore".
- Seleziona "Restore" e carica il file
.tgz
precedentemente salvato.
In alternativa, per sincronizzare la configurazione corrente con quella salvata sul disco, usa:
vim-cmd hostsvc/firmware/sync_config
- È richiesta una password root valida. Se non disponibile, utilizza l'accesso tramite vCenter o chiavi SSH.
- Il comando crea un backup della configurazione dell'host. Dopo l'esecuzione, l'output includerà un URL (ad esempio,
- Macchine virtuali:
ovftool vi://root@[ESXI_IP]/[VM_NAME] /path/to/backup/[VM_NAME].ova
- È necessaria l'utilità
ovftool
, installata su una macchina amministrativa (Windows, macOS o Linux). L'utilità può essere scaricata dal sito VMware Customer Connect. - Assicurati che la macchina amministrativa abbia accesso all'host ESXi e utilizza una password root valida per eseguire il comando.
- Salva il file
.ova
su un dispositivo di archiviazione esterno.
- È necessaria l'utilità
- Impostazioni di rete:
esxcli network ip interface list > network_config.txt
Salva l'output in un file.
- Licenza ESXi:
vim-cmd vimsvc/license --show
Conserva i backup su un dispositivo di archiviazione esterno non connesso all'host.
Determinazione del tipo di infrastruttura
Per scegliere il metodo di ripristino ottimale, determina il tipo di host:
- Gestito da vCenter: La sezione "Summary" dell'interfaccia web di ESXi indica un server vCenter.
- Autonomo: La gestione avviene direttamente, senza vCenter.
Metodo 1: Host gestito da vCenter (Host Profiles)
Questo metodo utilizza Host Profiles per gli host connessi a vCenter. Non richiede un riavvio ed è supportato da VMware.
Requisiti
- Licenza VMware vSphere Enterprise Plus.
- Accesso al server vCenter.
- Un altro host ESXi con una password root conosciuta e una versione identica di ESXi (ad esempio, 7.0 Update 3c).
- Se utilizzi una licenza Standard o inferiore, usa il Metodo 2 (reinstallazione) o il Metodo 3 (Nested ESXi).
Passaggi
- Accedi a vSphere Client (HTML5).
- Naviga nella sezione "Host Profiles":
- Seleziona nel menu principale "Menu" → "Host Profiles" o naviga tramite "Inventory" → "Hosts and Clusters" → "Host Profiles" (a seconda della versione di vSphere).
- Estrai un profilo:
- Seleziona un host con una password conosciuta.
- Fai clic su "Extract Profile from Host".
- Assegna un nome al profilo, ad esempio
Password_Reset_Profile
. - Attendi il completamento.
- Modifica il profilo:
- Seleziona il profilo e fai clic su "Edit Settings".
- Naviga su "Security Configuration" → "Authentication Configuration".
- Nella sezione "Local User Accounts", seleziona l'account
root
. - Imposta una nuova password (almeno 8 caratteri, inclusi lettere maiuscole, numeri e caratteri speciali).
- Salva le modifiche.
- Prepara l'host di destinazione:
- Seleziona l'host con la password dimenticata.
- Entra in modalità manutenzione: clic destro → "Enter Maintenance Mode".
- Seleziona "Move powered off and suspended virtual machines to other hosts" se applicabile.
- Se DRS o vMotion non sono disponibili, spegni le macchine virtuali.
- Attendi il completamento.
- Applica il profilo:
- Nella sezione "Host Profiles", seleziona il profilo.
- Fai clic su "Attach/Detach Hosts and Clusters", seleziona l'host.
- Fai clic su "Attach", quindi su "Remediate".
- Conferma le modifiche e attendi il completamento (circa dieci minuti).
- Verifica:
- Esci dalla modalità manutenzione: clic destro → "Exit Maintenance Mode".
- Accedi con la nuova password tramite l'interfaccia web o SSH.
- Verifica le macchine virtuali:
vim-cmd vmsvc/getallvms
Note
- La versione di ESXi dell'host di riferimento deve corrispondere a quella dell'host di destinazione.
- Discrepanze di configurazione possono causare errori. Controlla i log di vCenter.
Rischi
- Minimi se si seguono le istruzioni.
- Possibili guasti dovuti a discrepanze di configurazione.
Metodo 2: Host autonomo — Reinstallazione
Per gli host autonomi, viene utilizzata la reinstallazione di ESXi. Questo metodo comporta la perdita della configurazione senza backup.
Passaggi
- Preparazione:
- Scarica ESXi da VMware Customer Connect.
- Crea un USB avviabile utilizzando Rufus, Ventoy o:
sudo dd if=/path/to/esxi.iso of=/dev/sdX bs=4M status=progress && sync
Assicurati che
/dev/sdX
sia il dispositivo USB corretto (verifica conlsblk
ofdisk -l
). - Esegui un backup (vedi sezione "Backup").
- Reinstallazione:
- Avvia dal supporto di installazione.
- Seleziona il disco e conferma la sovrascrittura.
- Imposta una nuova password root (si consiglia almeno 8 caratteri).
- Attendi il completamento dell'installazione (circa 15 minuti).
- Ripristino:
- Configura la rete:
esxcli network ip interface ipv4 set -i vmk0 -I [IP] -N [NETMASK] -t static esxcli network ip route ipv4 add -g [GATEWAY] -n default esxcli network ip interface set -e false -i vmk0; esxcli network ip interface set -e true -i vmk0
Se l'host utilizzava un vSphere Distributed Switch (vDS), ripristina vDS tramite vCenter o configura un vSphere Standard Switch (vSS).
- Collega l'archiviazione:
esxcli storage core adapter rescan --all
Per montare tutti i volumi VMFS disponibili, usa:
esxcli storage filesystem automount
Se il montaggio automatico fallisce, verifica i volumi disponibili e monta manualmente:
esxcli storage filesystem list esxcli storage filesystem mount --volume-label=[VOLUME_LABEL]
Sostituisci
[VOLUME_LABEL]
con il nome del volume ottenuto dal comandolist
. - Importa le macchine virtuali:
ovftool /path/to/backup/[VM_NAME].ova vi://root@[ESXI_IP]/
Assicurati che
ovftool
venga eseguito su una macchina amministrativa con accesso all'host. - Ripristina la licenza:
vim-cmd vimsvc/license --set [LICENSE_KEY] --label="ESXi License"
Il parametro
--label
è opzionale, ma consigliato per identificare la licenza nell'interfaccia vSphere.
- Configura la rete:
Rischi
- Perdita della configurazione e delle macchine virtuali senza backup.
- Richiede la riconfigurazione di rete e archiviazione.
Metodo 3: Host autonomo — Metodo alternativo
Per gli host autonomi in cui la reinstallazione non è possibile, si utilizza un metodo con Nested ESXi e una VM Linux per modificare i file di configurazione. È complesso, non supportato da VMware e destinato ad amministratori esperti.
Requisiti
- VM Nested ESXi corrispondente alla versione e build dell'host (ad esempio, 7.0 Update 3c). Disponibile su VMware Flings.
- VM Linux (ad esempio, Ubuntu 20.04+).
- Accesso fisico al server.
- Esperienza con Linux.
Passaggi
- Distribuisci Nested ESXi e una VM Linux.
- Avvia da un Linux LiveCD, monta le partizioni ESXi e copia i file
state.tgz
elocal.tgz
. - Trasferisci i file a Nested ESXi, decrittali utilizzando
/usr/lib/vmware/crypto-util
e modifica l'hash della password nel database SQLite. - Ripacchetta e crittografa i file, rimettili sull'host e riavvia.
Rischi
- Se l'host utilizza un Trusted Platform Module (TPM), i file di configurazione sono legati alle chiavi TPM. La sostituzione dei file senza chiavi può rendere il sistema non operativo. Verifica:
esxcli system settings encryption get
Se
Encryption Mode
indica TPM, questo metodo potrebbe non essere applicabile. - Modifiche errate possono reimpostare le impostazioni di rete, l'archiviazione o le macchine virtuali.
- Nested ESXi deve corrispondere esattamente alla versione dell'host.
- In ESXi 8.x, il metodo potrebbe non funzionare a causa di modifiche alla crittografia.
Alternativa
Se SSH è abilitato, aggiungi una chiave SSH:
- Genera una chiave:
ssh-keygen -t rsa -b 4096
- Aggiungi la chiave a
/etc/ssh/keys-root/authorized_keys
.
Misure preventive
- Documentazione:
- Conserva le password in un gestore di password, come HashiCorp Vault.
- Mantieni aggiornata la documentazione.
- Accesso SSH:
- Abilita SSH per la sessione corrente:
esxcli system services enable --id=TSM-SSH esxcli system services start --id=TSM-SSH
- Per l'avvio automatico di SSH all'avvio:
esxcli system services set --policy=on --id=TSM-SSH
- Disabilita il timeout della shell ESXi:
esxcli system settings advanced set -o /UserVars/ESXiShellTimeOut -i 0
- In alternativa, configura tramite vSphere Client:
- Seleziona l'host → "Configure" → "Services".
- Trova "TSM-SSH", seleziona "Options" → "Start and stop with host".
- Configura chiavi SSH:
- Genera una chiave sulla macchina client:
ssh-keygen -t rsa -b 4096
- Copia la chiave pubblica (ad esempio,
~/.ssh/id_rsa.pub
) sull'host:scp ~/.ssh/id_rsa.pub root@[ESXI_IP]:/etc/ssh/keys-root/authorized_keys
- Imposta i permessi:
ssh root@[ESXI_IP] "chmod 644 /etc/ssh/keys-root/authorized_keys"
- Genera una chiave sulla macchina client:
- Conserva le chiavi in
/etc/ssh/keys-root/authorized_keys
.
- Abilita SSH per la sessione corrente:
- Active Directory:
- Unisci l'host a un dominio tramite CLI:
esxcli system authentication activedirectory join -d [DOMAIN] -u [USERNAME] -p [PASSWORD]
Specifica [DOMAIN] (ad esempio, example.com), [USERNAME] (utente con permessi di unione) e [PASSWORD].
- In alternativa, usa vSphere Client:
- Seleziona l'host → "Configure" → "Authentication Services".
- Fai clic su "Join Domain", specifica il dominio e le credenziali.
- Assegna permessi a un gruppo di dominio tramite vSphere Client:
- Seleziona l'host o vCenter.
- Naviga su "Permissions".
- Fai clic su "Add", seleziona il gruppo (ad esempio,
DOMAIN\GroupName
) e assegna un ruolo (ad esempio, "Administrator").
- Per l'automazione, usa PowerCLI:
New-VIPermission -Entity (Get-VMHost) -Principal "DOMAIN\GroupName" -Role Admin
- Unisci l'host a un dominio tramite CLI:
- Monitoraggio:
- Usa vRealize Operations o Zabbix.
- Configura notifiche per i guasti.
- Backup:
- Automatizza:
vim-cmd hostsvc/firmware/backup_config
Scarica il file tramite l'URL e salvalo su un dispositivo esterno.
- Automatizza: