I comandi ESXCLI più utili per il tuo ambiente VMware
È possibile utilizzare vSphere Client, l’interfaccia grafica fornita da VMware, e VMware vSphere Web/HTML5 Client, basato sul web, per gestire gli host VMware ESXi e l’ambiente VMware. Sebbene la maggior parte delle impostazioni sia disponibile nell’interfaccia grafica, a volte potrebbe essere necessario ottenere informazioni o modificare una configurazione che non viene visualizzata nell’interfaccia grafica.In questo caso, è necessaria l’interfaccia della riga di comando (CLI) o la “console”, che consente di configurare tutte le impostazioni, comprese quelle nascoste. Oltre ai comandi tradizionali che sono gli stessi in Linux e ESXi, ESXi dispone dei propri comandi ESXCLI.Questo post del blog è stato creato nel formato di un catalogo che elenca i comandi ESXCLI utili, che fanno parte dei comandi della shell ESXi.
Come aprire la console shell ESXi
Per impostazione predefinita, la shell ESXi è disabilitata per l’accesso locale e remoto. Ciò significa che non è possibile eseguire comandi della shell ESXi finché non si abilita l’accesso alla shell ESXi o SSH. VMware impone questa restrizione per motivi di sicurezza.Esaminiamo i tre metodi principali per abilitare l’interfaccia della riga di comando in ESXi.
Abilitazione dell’accesso alla console utilizzando l’interfaccia ESXi predefinita
Questo metodo viene utilizzato quando si dispone di accesso fisico a un host ESXi, compresi il monitor e la tastiera dell’host.
- Nel Interfaccia utente della console diretta ESXi (DCUI), vai a Opzioni di risoluzione dei problemi, vai a Abilita shell ESXi e Abilita SSH stringhe e premi Inserisci per abilitare ciascuna opzione.
- Dopo aver abilitato la shell ESXi, premere Alt+F1 per aprire la console sul computer che esegue ESXi. Successivamente, è necessario inserire il nome utente e la password (è possibile utilizzare le credenziali dell’utente root).
- È possibile eseguire i comandi della shell ESXi.
- Se è necessario tornare alla DCUI ESXi, premere Alt+F2. Il Abilita SSH Le opzioni consentono di aprire la console ESXi in remoto utilizzando un client SSH.

Abilitazione dell’accesso alla console tramite VMware Host Client
- Apri un browser web e inserisci l’indirizzo IP del tuo host ESXi nella barra degli indirizzi, quindi effettua il login.
- Vai a Host > Azioni > Servizi e clicca Abilita Secure Shell (SSH) per abilitare l’accesso SSH fino al riavvio di ESXi.
Allo stesso modo, è possibile abilitare la shell della console su un host ESXi locale nel Servizi menu. Vai a Gestisci > Servizi. Fare clic con il pulsante destro del mouse su TSM-SSH servizio. Colpisci Criterio > Avvio e arresto con host per abilitare l’accesso SSH anche dopo il riavvio di ESXi.
- Ora è possibile connettersi alla console ESXi utilizzando il client SSH in remoto.

Abilitazione dell’accesso alla console tramite vCenter e VMware vSphere Client
Questo metodo può essere utilizzato se l’host ESXi è gestito da vCenter Server.
- Accedi a Client VMware HTML5 vSphere in un browser web.
- Vai a Host e cluster e seleziona il tuo host ESXi.
- Seleziona il Configura scheda, apri Sistema > Servizi, e clicca SSH nell’elenco dei servizi.
- Colpisci Avvia per avviare il server SSH una volta o premere Modifica criteri di avvio e seleziona Avvio e arresto con host se desideri abilitare il server SSH per un periodo di tempo prolungato. Puoi anche abilitare la shell ESXi nel Servizi menu.

Una volta abilitato l’accesso SSH, è possibile connettersi in remoto a un host ESXi con un client SSH ed eseguire comandi ESXCLI.
Connessione tramite SSH
Per connettersi alla console ESXi in remoto tramite SSH, nella console Linux, eseguire le seguenti azioni.
- Esegui un comando come:
ssh 192.168.101.221oppure
ssh root@192.168.101.221dove 192.168.101.221 è l’indirizzo IP del server ESXi utilizzato in questo esempio.
- È necessario inserire il nome utente e la password dell’utente ESXi (radice può essere utilizzato come utente di amministrazione predefinito su ESXi).

Allo stesso modo, è possibile connettersi da un host ESXi a un altro tramite SSH nella riga di comando.In Windows, è possibile utilizzare PuTTY:
- Apri PuTTY
- Inserisci l’indirizzo IP e la porta dell’host ESXi.
- Colpisci Apri per connettersi all’host ESXi tramite SSH.

La connessione a un host ESXi tramite SSH e l’esecuzione remota dei comandi ESXCLI è l’approccio più comunemente utilizzato e sicuro.
Come installare ESXCLI in Linux
Il modo alternativo per eseguire i comandi ESXCLI in remoto consiste nell’installare ESXCLI su Linux. A tal fine è necessario installare Python. Di seguito sono riportati i passaggi principali per l’installazione di ESXCLI su Linux:
- Esegui il backup del tuo computer Linux prima di apportare modifiche al sistema.
- Scarica ESXCLI dal Sito web VMware
- Estrai il contenuto dal file scaricato esxcli-8.0.0-22179150.tgz archivio (eseguire come root):
tar zxf esxcli-8.0.0-22179150.tgz -C /opt/vmware - Eseguire il programma di installazione ESXCLI con il comando:
python setup.py install - Prova a connetterti a un host ESXi ed esegui un comando in ESXCLI da remoto:
esxcli --server ESXI_IP_address --helpVerrà visualizzato un errore perché per ESXi è obbligatoria una relazione di fiducia tra gli host:
Errore certificato. Impronta digitale SHA-256 del server: 64:CC:E5:F8:A4:AA:F6:9B:58:55:78:B7:E3:B3:69:10:83:3B:22:3C:BB:17:3D:12:28:D1:CD:E9:48:7A:FF:AA (non attendibile)
- Per risolvere questo problema, esegui il comando specificando un nome utente, una password e l’impronta digitale visualizzata nel messaggio di output precedente:
esxcli --server 192.168.101.101 --username root --password 'your_password' --thumbprint 64:CC:E5:F8:A4:AA:F6:9B:58:55:78:B7:E3:B3:69:10:83:3B:22:3C:BB:17:3D:12:28:D1:CD:E9:48:7A:FF:AA --help
In alternativa, puoi provare a installare un certificato su un computer Linux. Un certificato è memorizzato in /etc/vmware/ssl/rui.crt su un host ESXi.
Panoramica dei comandi ESXCLI
ESXCLI, parte della shell ESXi, è un framework CLI per la gestione di un’infrastruttura virtuale (componenti ESXi quali hardware, rete, storage, ecc.) e il controllo di ESXi stesso a basso livello. Tecnicamente, ESXCLI è uno script Python (/bin/esxcli.py in ESXi). Tutti i comandi ESXCLI devono essere eseguiti nella shell ESXi (console). In generale, esxcli è il comando che dispone di un ampio elenco di sottocomandi chiamati spazi dei nomi e delle relative opzioni. Il esxcli Il comando è presente subito dopo l’installazione di ESXi, insieme ad altri comandi della shell ESXi.La sua ubicazione è disponibile dopo aver eseguito i seguenti comandi:which esxclils -l /sbin/esxcli
Come puoi verificare controllando l’output della console, ESXCLI è uno script scritto in Python con la sua ubicazione nella directory /sbin/ directory. Se desideri visualizzare il contenuto dello script, puoi utilizzare l’editor di testo integrato. vi.Fondamentalmente, la sintassi ESXCLI è la seguente:esxcli [options] {namespace}+ {cmd} [cmd options]Pertanto, ESXCLI è costituito da rami che rappresentano le categorie principali (spazi dei nomi) dei comandi ESXCLI. Si noti che i comandi esxcli distinguono tra maiuscole e minuscole, analogamente agli altri comandi della console utilizzati in ESXi. L’elenco completo di tutti gli spazi dei nomi e i comandi ESXCLI disponibili viene visualizzato dopo aver eseguito il comando:esxcli esxcli command listL’elenco dei comandi ESXCLI disponibili dipende dalla versione di ESXi. È possibile aggiungere nuovi comandi.Pertanto, l’elenco dei principali spazi dei nomi ESXCLI per ESXi 8.0 è il seguente:
- dispositivo – comandi di gestione dispositivi
- esxcli – comandi relativi a ESXCLI stesso
- fcoe – Comandi Fibre Channel over Ethernet
- graphics – Comandi grafici VMware
- hardware – comandi per controllare le proprietà dell’hardware e configurare l’hardware
- iscsi – Comandi VMware iSCSI
- rete – questo spazio dei nomi include un’ampia gamma di comandi per la gestione delle impostazioni generali della rete host (come l’indirizzo IP, le impostazioni DNS di un host ESXi, il firewall) e dei componenti di rete virtuale come vSwitch, gruppi di porte, ecc.
- nvme – gestione delle estensioni per il driver VMware NVMe
- rdma – comandi per la gestione dello stack del protocollo di accesso diretto alla memoria remota
- programma – comandi utilizzati per configurare la pianificazione e le proprietà di sistema VMkernel
- software – gestione delle immagini software ESXi e dei pacchetti per ESXi
- storage – comandi utilizzati per la gestione dell’storage
- sistema – comandi per configurare le proprietà di sistema VMkernel, il sistema core del kernel e i servizi di sistema
- VM – alcuni comandi che possono essere utilizzati per controllare le operazioni della VM
- vsan – Comandi VMware vSAN
I comandi principali appaiono come verbi che indicano la stessa azione:
- elenco – mostra l’elenco degli oggetti disponibili per lo spazio dei nomi definito (ad esempio,
esxcli hardware bootdevice list– elenco dei dispositivi di avvio disponibili) - ottenere – ottieni il valore dell’impostazione o della proprietà definita (ad esempio,
esxcli hardware clock get– controllare l’ora impostata) - set – impostare manualmente il parametro necessario (ad esempio,
esxcli hardware clock set -y 2024 -s 00– impostare l’anno su 2024 e i secondi su 00) - carico/scarico – configurazione del sistema di carico/scarico (
esxcli network firewall load– caricare il modulo firewall e le impostazioni firewall memorizzate nel file di configurazione)
Se non si riesce a ricordare un particolare comando ESXCLI relativo allo spazio dei nomi appropriato, è possibile immettere il comando e visualizzare un suggerimento nell’output della console.Ad esempio, digitare:esxcli network per visualizzare tutti i comandi disponibili per il rete namespacee poi digita:esxcli network vm per controllare i comandi per il VM spazio dei nomi.
La ubicazione del file di log ESXCLI è in /var/log/esxcli.logI dati vengono scritti in questo file se un comando ESXCLI non è stato eseguito correttamente. Se un comando ESXCLI viene eseguito correttamente, nulla viene scritto in questo file di log.
Comandi ESXCLI utili
Ora che avete familiarità con il principio di funzionamento di base dei comandi ESXCLI, esaminiamo alcuni esempi specifici di comandi utili che possono essere utilizzati in VMware vSphere. L’elenco dei comandi ESXCLI considerati in questo articolo è suddiviso in categorie equivalenti ai nomi degli spazi dei nomi.
Comandi per verificare i dettagli hardware in ESXi
Utilizzando il hardware namespace, è possibile visualizzare tutte le informazioni relative ai dispositivi installati.
- Per visualizzare i dispositivi PCI installati, eseguire il seguente comando ESXCLI:
esxcli hardware pci list | more - Controllare la quantità di memoria installata sul server ESXi:
esxcli hardware memory get
- Visualizza le informazioni dettagliate sui processori installati:
esxcli hardware cpu list
Comandi di sistema ESXCLI
In questa sezione puoi vedere i comandi del sistema Spazio dei nomi ESXCLI.
- Controllare la versione ESXi precisa e il numero di build, compreso il numero di aggiornamenti e patch installati:
esxcli system version get - Controllare il nome host di un server ESXi:
esxcli system hostname get - Controllare il tempo di installazione di ESXi:
esxcli system stats installtime get
- Controllare la configurazione SNMP:
esxcli system snmp get - Accedere all’host ESXi in modalità di manutenzione:
esxcli system maintenanceMode set --enable yes - Esci dalla modalità di manutenzione:
esxcli system maintenanceMode set --enable no
Dopo aver impostato un host ESXi in modalità di manutenzione, è possibile spegnere o riavviare l’host.
- Spegnere un host ESXi:
esxcli system shutdown poweroff - Il comando per riavviare l’host è simile:
esxcli system shutdown reboot - È anche possibile impostare un ritardo e scrivere il motivo del riavvio dell’host da salvare nei log di sistema:
esxcli system shutdown reboot -d 60 -r \"Installing patches\"In questo esempio, il ritardo è di 60 secondi.
Un altro comando serve a impostare il messaggio di benvenuto personalizzato al posto della schermata di sfondo standard con un menu principale inattivo ombreggiato dove il “
- Il messaggio personalizzato può essere utilizzato per nascondere le informazioni relative all’host ESXi sul display collegato all’host ESXi quando un utente non ha effettuato l’accesso.
esxcli system welcomemsg set -m=\"Welcome to NAKIVO! Press F2\" - Verifica se il messaggio di benvenuto è già impostato:
esxcli system welcomemsg get
Comandi di rete ESXCLI
Il rete namespace è uno dei namespace più grandi di ESXCLI. Esploriamo i comandi che possono essere utili per la diagnostica.
- Controlla lo stato delle connessioni di rete attive:
esxcli network ip connection list
- Visualizza l’elenco degli adattatori di rete installati:
esxcli network nic list
- Visualizza le informazioni relative alle interfacce di rete:
esxcli network ip interface list - Visualizza le informazioni relative agli indirizzi IP delle interfacce di rete presenti sul server:
esxcli network ip interface ipv4 get - Visualizza le informazioni di rete per le VM:
esxcli network vm list
- Visualizza le impostazioni di ricerca del dominio:
esxcli network ip dns search list - Visualizza i server DNS impostati nelle impostazioni di rete:
esxcli network ip dns server list - Elenco interruttori virtuali e gruppi di porte:
esxcli network vswitch standard list - Mostra statistiche per il vmnic0 interfaccia di rete:
esxcli network nic stats get -n vmnic0 - Controlla lo stato del firewall e le impostazioni delle regole:
esxcli network firewall getesxcli network firewall ruleset listNOTA: Il criterio predefinito del firewall è quello di bloccare il traffico se non sono impostate regole contrarie.
- È possibile disabilitare temporaneamente il firewall su un host ESXi per la risoluzione dei problemi:
esxcli network firewall set --enabled false - Il firewall deve essere abilitato con il comando:
esxcli network firewall set --enabled true
Per motivi di sicurezza, si consiglia di abilitare il firewall ESXi.Il rete Il namespace include molti comandi. Solo quelli di base e più diffusi sono presi in considerazione nel Rete sezione del post del blog di oggi. È possibile configurare un numero elevato di parametri di rete con ESXCLI, ma ciò richiederebbe una lunga procedura che esula dall’ambito dell’articolo di oggi.
Storage commands for ESXCLI
Il storage Il namespace consente di controllare e modificare le impostazioni di storage.
- Controlla le informazioni sui volumi VMFS montati:
esxcli storage vmfs extent list - Visualizza le mappature dei file system VMFS sui dispositivi disco:
esxcli storage filesystem list - Elenca tutti i percorsi iSCSI presenti nel sistema:
esxcli storage core path list - Visualizza l’elenco delle condivisioni NFS montate:
esxcli storage nfs list
Come controllare SMART in ESXCLI
S.M.A.R.T. è utile per la diagnostica dei dischi e per prevenire guasti ai dischi. È possibile leggere i dati S.M.A.R.T. e, se si rileva un problema con il disco, è possibile decidere tempestivamente di sostituirlo.
- Per prima cosa, elenca tutti i dispositivi di storage e individua il nome univoco del dispositivo (vedi screenshot qui sotto):
esxcli storage core device list - Quindi utilizzare il comando per ottenere i dati S.M.A.R.T. di quel dispositivo disco:
esxcli storage core device smart get -d naa.50026b7267020435dove naa.50026b7267020435 è il nome del dispositivo utilizzato in questo esempio.

Controllare l’elenco degli adattatori iSCSI
iSCSI è un protocollo ampiamente utilizzato per accedere allo storage condiviso a livello di blocco, ed esiste un separato iscsi Spazio dei nomi in ESXCLI per la gestione dello storage iSCSI.
- Mostra l’elenco degli adattatori iSCSI disponibili:
esxcli iscsi adapter list - Rileva e riesegui la scansione degli adattatori iSCSI:
esxcli iscsi adapter discovery rediscover -A adapter_nameesxcli storage core adapter rescan -A adapter_name
Invece di -A adapter_name è possibile eseguire una nuova scansione di tutti gli adattatori utilizzando il comando --all opzione.
Controllare l’elenco dei VIB del software ESXi
I pacchetti software destinati a ESXi sono solitamente distribuiti come file VIB (vSphere installation bundle). Un file VIB è simile a un contenitore con pacchetti compressi che possono essere installati nel sistema, con un descrittore e un file di firma. A loro volta, i VIB sono solitamente distribuiti come file compressi in un file di archivio nel formato ZIP standard. Potrebbe essere necessario includere i VIB in un’immagine ESXi per poter utilizzare l’hardware appropriato o installare i VIB in un sistema esistente per applicare una patch di sicurezza.
- È possibile visualizzare l’elenco dei pacchetti VIB installati sull’host ESXi:
esxcli software vib list - È possibile installare un VIB con ESXCLI (l’host ESXi deve essere in modalità di manutenzione):
esxcli software vib install -d /vmfs/volumes/datastore1/patches/patch_name.zip
Gestione delle operazioni VM in ESXCLI
Il VM Il namespace può essere utilizzato per operazioni sui processi delle VM in esecuzione.
- Controlla l’elenco delle VM in esecuzione e visualizza i loro ID mondiali:
esxcli vm process list
È possibile terminare la VM che non risponde utilizzando i comandi della shell ESXi. In questo caso, l’utilizzo di ESXCLI può essere utile quando non è possibile arrestare una VM utilizzando la GUI, ad esempio quella di VMware vSphere Client, VMware Host Client o VMware Workstation.
- Spegnere la VM utilizzando l’ID mondiale visualizzato nell’output del comando
esxcli vm process listcomando. Nell’esempio attuale, l’ID mondiale della VM necessaria è 75498.esxcli vm process kill -w 75498 -t soft - Se il comando soft non è stato utile, valuta la possibilità di eseguire uno spegnimento immediato della VM utilizzando il metodo hard.
esxcli vm process kill -w 75498 -t hard
Sono disponibili tre opzioni di comando per il uccidere comando:
- morbido – viene inviato un segnale corretto nel sistema operativo ospite per arrestare correttamente una VM
- duro – una VM viene immediatamente spenta
- forza – La VM viene spenta in modo simile a come si spegne un computer quando si scollega il cavo di alimentazione. Utilizzare questo tipo di spegnimento della VM solo se i due tipi precedenti non hanno avuto successo.
Altri comandi utili della shell ESXi
Oltre ai comandi ESXCLI, è possibile utilizzare numerosi comandi della shell ESXi:
- Aprire ESXi DCUI dalla console (i colori sono diversi quando ci si connette alla shell ESXi tramite SSH):
dcui
Stampa Ctrl+C per tornare al prompt dei comandi.
- Convertire un disco virtuale con provisioning thick in un disco virtuale con provisioning thin utilizzando vmkfstools:
vmkfstools -i /vmfs/volumes/vmfs_datastore/vm_name/thick_disk.vmdk -d thin /vmfs/volumes/vmfs_datastore/vm_name/new_thin_disk_name.vmdkTra i comandi della shell ESXi, vmkfstools è un potente comando per eseguire operazioni di storage e gestire dispositivi di storage, volumi VMFS e dischi virtuali. Maggiori informazioni sul provisioning thick e thin e sulla riduzione dei dischi virtuali sono disponibili nella sezione post sul blog.
- Aprire il task manager ESXi:
esxtopDopo aver aperto il task manager con il comando
esxtop, è possibile passare da una scheda all’altra premendo i tasti appropriati:C – CPU
Io – interrompo
M – memoria
N – rete
D – adattatore disco
Dispositivo disco U
V – disco VM
P – gestione dell’alimentazione
- Trova il file nella directory corrente:
find . -name filename.txt - Sostituire il . carattere con il nome della directory in cui desideri individuare un file e sostituisci
filename.txtcon il nome del tuo file. Ad esempio, se desideri trovare un nome_disco.vmdk file nel /vmfs/volumi/ directory, eseguire il comando:find /vmfs/volumes/ -name diskname.vmdk - Aprire la console interattiva VMware:
vsish - Mostra driver vmkernel caricati:
vmkload_mod --list - Controlla le impostazioni della partizione di swap:
esxcli sched swap system get - È possibile elencare gli utenti utilizzando uno dei seguenti comandi:
esxcli system account listcat /etc/passwd or less/etc/passwd
- È possibile visualizzare tutti i comandi ESXi con la loro ubicazione nella directory sbin:
ls /usr/sbin
Creazione di un nuovo utente
Esistono almeno due metodi per creare un nuovo utente ESXi utilizzando i comandi della shell ESXi.
Il comando ESXi adduser
- Se digiti il
addusernella console ESXi, verrà visualizzato il messaggio:-sh: adduser: non trovato
- È necessario definire il percorso completo del binario busybox appropriato per eseguire questo comando:
/usr/lib/vmware/busybox/bin/busybox adduserOra puoi vedere le opzioni di utilizzo di questo comando.
- Infine, esegui il comando esatto per aggiungere un utente di sistema ESXi:
/usr/lib/vmware/busybox/bin/busybox adduser -s /bin/sh -G root -h / user1Dove:
-s /bin/sh è una shell utilizzata dopo il login dell’utente;
-G radice – il nome del gruppo di cui il membro è un nuovo utente (il gruppo root);
-h / è una directory home (la directory principale) di un nuovo utente;
utente1 è il nome utente.
- Inserisci una nuova password e confermala quando richiesto.

Creare un utente in ESXCLI
In alternativa, è possibile aggiungere un nuovo utente con un solo comando utilizzando ESXCLI:esxcli system account add -d=\"NAKIVO user\" -i=\"nakivo\" -p=\"Password-Test321\" -c=\"Password-Test321\"Dove:-d indica la descrizione visualizzata-p è la password impostata per il nuovo utente-c è la conferma della passwordQuale metodo scegliere per creare un nuovo utente nella riga di comando? Il singolo comando utilizzato nel secondo metodo può sembrare comodo, ma non in termini di sicurezza. Se ricordate, subito dopo aver effettuato l’accesso alla shell ESXi è stato visualizzato un messaggio di avvertenza:Tutti i comandi eseguiti sulla shell ESXi vengono registrati e possono essere inclusi nei bundle di supporto. Non fornire password direttamente sulla riga di comando. La maggior parte degli strumenti può richiedere l’inserimento di credenziali segrete o accettarle dall’input standard..Se la sicurezza è una vostra preoccupazione, inserite i comandi senza includere le password come testo normale nei comandi. Se è necessaria una password, di solito viene richiesta e può essere inserita nell’input standard della console. Ad esempio, se desiderate creare un nuovo utente con ESXCLI, utilizzate un comando come:esxcli system account add -d=\"user2\" -i=\"user2\" -p -cUn Password ESXi verrà richiesto separatamente e non verrà visualizzato nella console durante l’inserimento della password.
Conclusione
Esistono comandi della console VMware per gestire i componenti di sistema, la rete, lo storage, il software VIB e le VM. L’utilizzo dell’interfaccia della riga di comando in ESXi offre maggiori potenzialità oltre alle intuitive interfacce grafiche di VMware vSphere Client e VMware Host Client.È possibile utilizzare i comandi della shell ESXi in locale e i comandi SSH ESXi in remoto per visualizzare e configurare le impostazioni nascoste o non disponibili nella GUI. Utilizza l’elenco dei comandi ESXi fornito in questo post del blog per ottimizzare ESXi e sperimentare la potenza aggiuntiva dell’utilizzo dell’interfaccia della riga di comando in VMware vSphere.Scopri di più leggendo l’articolo. PowerCLI, un altro tipo di interfaccia a riga di comando per la gestione di VMware vSphere da Windows PowerShell.