Los comandos ESXCLI más útiles para tu entorno VMware
Puedes utilizar vSphere Client, la interfaz gráfica de usuario (GUI) que ofrece VMware, y VMware vSphere Web/HTML5 Client, que es una aplicación basada en web, para realizar la gestión de los hosts ESXi de VMware y tu entorno VMware. Aunque la mayoría de los ajustes están disponibles en la GUI, en ocasiones puede que necesites obtener información o modificar una configuración que no se muestra en la GUI.
En este caso, necesitará la interfaz de línea de comandos (CLI) o la «consola», que le permite configurar todos los ajustes, incluidos los ocultos. Además de los comandos tradicionales, que son los mismos en Linux y ESXi, ESXi cuenta con sus propios comandos ESXCLI.
Esta entrada de blog se ha creado en formato de catálogo que enumera comandos ESXCLI útiles, los cuales forman parte de los comandos del shell de ESXi.
Cómo abrir la consola de ESXi
De forma predeterminada, la consola de ESXi está desactivada tanto para el acceso local como para el remoto. Esto significa que no se pueden ejecutar comandos de la consola de ESXi hasta que se active dicha consola o el acceso SSH. VMware impone esta restricción por motivos de seguridad.
Veamos los tres métodos principales para habilitar la interfaz de línea de comandos en ESXi.
Habilitar el acceso a la consola mediante la interfaz predeterminada de ESXi
Este método se utiliza cuando se tiene acceso físico a un host ESXi, incluyendo el monitor y el teclado del host.
- En el Interfaz de usuario de la consola directa de ESXi (DCUI), vaya a
Troubleshooting Options, busque las cadenasEnable ESXi ShellyEnable SSH, y pulseEnterpara habilitar cada opción. - Después de habilitar el shell de ESXi, pulse
Alt+F1para abrir la consola en la máquina que ejecuta ESXi. A continuación, deberá introducir su nombre de usuario y contraseña (se pueden utilizar las credenciales del usuario root). - Ya puede ejecutar comandos del shell de ESXi.
- Si necesita volver a la interfaz DCUI de ESXi, pulse
Alt+F2. La opciónEnable SSHle permite abrir la consola de ESXi de forma remota mediante un cliente SSH.
Habilitar el acceso a la consola mediante VMware Host Client
- Abre un navegador web e introduce la dirección IP de tu host ESXi de VMware en la barra de direcciones; a continuación, inicia sesión.
- Ve a
Host>Actions>Servicesy haz clic enEnable Secure Shell (SSH)para habilitar el acceso SSH hasta el reinicio de ESXi.Del mismo modo, puedes habilitar el shell de la consola en un host ESXi local en el menú
Services. Ve aManage>Services. Haz clic con el botón derecho del ratón en el servicioTSM-SSH. SeleccionePolicy>Start and Stop with hostpara habilitar el acceso SSH después del reinicio de ESXi. - Ahora puede conectarse a la consola de ESXi de forma remota utilizando su cliente SSH.

Habilitar el acceso a la consola mediante vCenter y VMware vSphere Client
Este método se puede utilizar si su host ESXi está gestionado por vCenter Server.
- Inicie sesión en Cliente VMware vSphere en HTML5 desde un navegador web.
- Vaya a
Hosts and Clustersy seleccione su host ESXi. - Selecciona la pestaña «
Configure», abre «System>Services», « » y haz clic en «SSH» en la lista de servicios. - Pulsa «
Start» para iniciar el servidor SSH una sola vez o pulsa «Edit Startup Policy» y selecciona «Start and Stop with host» si deseas habilitar el servidor SSH durante un periodo de tiempo prolongado. También puedes habilitar el shell de ESXi en el menú «Services».
Una vez habilitado el acceso SSH, puedes conectarte de forma remota a un host ESXi mediante un cliente SSH y ejecutar comandos ESXCLI.
Conexión a través de SSH
Para conectarte de forma remota a la consola de ESXi a través de SSH, en la consola de Linux, realiza las siguientes acciones.
- Ejecute un comando como:
ssh 192.168.101.221o
ssh root@192.168.101.221donde 192.168.101.221 es la dirección IP del servidor ESXi utilizado en este ejemplo.
- Debe introducir el nombre de usuario y la contraseña del usuario de ESXi (
rootpuede utilizarse como usuario de administración predeterminado en ESXi).
Del mismo modo, puede conectarse desde un host ESXi a otro a través de SSH en la línea de comandos.
En Windows, puede utilizar PuTTY:
- Abra
PuTTY - Introduzca la dirección IP y el puerto del host ESXi.
- Pulse
Openpara conectarse al host ESXi a través de SSH.
Conectarse a un host ESXi a través de SSH y ejecutar comandos ESXCLI de forma remota es el método más utilizado y seguro.
Cómo instalar ESXCLI en Linux
La forma alternativa de ejecutar comandos ESXCLI de forma remota es instalar ESXCLI en Linux. Para ello, es necesario tener instalado Python. A continuación se detallan los pasos principales para instalar ESXCLI en Linux:
- Haz backup de tu máquina Linux antes de realizar cambios en el sistema.
- Descarga ESXCLI desde Página web de VMware
- Extrae el contenido del archivo descargado
esxcli-8.0.0-22179150.tgz(ejecuta como root):tar zxf esxcli-8.0.0-22179150.tgz -C /opt/vmware - Ejecuta el instalador de ESXCLI con el comando:
python setup.py install - Intenta conectarte a un host ESXi y ejecutar un comando en ESXCLI de forma remota:
esxcli --server ESXI_IP_address --helpObtendrás un error porque ESXi requiere una relación de confianza entre hosts:
Certificate error. Server SHA-256 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 (not trusted)
- Para solucionar este problema, ejecuta el comando especificando un nombre de usuario, una contraseña y la huella digital que aparece en el mensaje de salida anterior:
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
Como alternativa, puedes intentar instalar un certificado en una máquina Linux. El certificado se almacena en /etc/vmware/ssl/rui.crt en un host ESXi.
Descripción general de los comandos de ESXCLI
ESXCLI, que forma parte del shell de ESXi, es un marco de CLI para gestionar una infraestructura virtual (componentes de ESXi como hardware, red, almacenamiento, etc.) y controlar el propio ESXi a bajo nivel. Técnicamente, ESXCLI es un script de Python (/bin/esxcli.py en ESXi). Todos los comandos de ESXCLI deben ejecutarse en el shell de ESXi (consola). En general, esxcli es el comando que cuenta con una amplia lista de subcomandos denominados «espacios de nombres» y sus opciones. El comando esxcli está disponible inmediatamente después de la instalación de ESXi, junto con otros comandos del shell de ESXi.
Puedes localizar esxcli y explorar las características de ESXCLI tras ejecutar los siguientes comandos:
which esxcli
ls -l /sbin/esxcli

Como puedes comprobar al revisar la salida de la consola, ESXCLI es un script escrito en Python que se encuentra en el directorio /sbin/ . Si desea ver el contenido del script, puede utilizar el editor de texto integrado vi.
Básicamente, la sintaxis de ESXCLI es la siguiente:
esxcli [options] {namespace}+ {cmd} [cmd options]
Así pues, ESXCLI se compone de ramas que constituyen las categorías principales (espacios de nombres) de los comandos de ESXCLI. Tenga en cuenta que los comandos de esxcli distinguen entre mayúsculas y minúsculas, al igual que otros comandos de consola utilizados en ESXi. La lista completa de todos los espacios de nombres y comandos de ESXCLI disponibles se muestra después de ejecutar el comando:
esxcli esxcli command list
La lista de comandos de ESXCLI disponibles depende de la versión de ESXi. Se pueden añadir nuevos comandos.
Por lo tanto, la lista de los principales espacios de nombres de ESXCLI para ESXi 8.0 es la siguiente:
device– comandos del gestor de dispositivosesxcli– comandos relacionados con el propio ESXCLIfcoe– comandos de Fibre Channel sobre Ethernetgraphics– comandos gráficos de VMwarehardware– comandos para comprobar las propiedades del hardware y configurarloiscsi– comandos iSCSI de VMwarenetwork– este espacio de nombres incluye una amplia gama de comandos para gestionar los ajustes generales de red del host (como la dirección IP, Los ajustes de DNS de un host ESXi de VMware o el cortafuegos) y de componentes de red virtual, como vSwitch, grupos de puertos, etc.nvme– gestión de extensiones para el controlador NVMe de VMwarerdma– comandos para gestionar la pila del protocolo de acceso directo a memoria remotasched– comandos utilizados para configurar la programación y las propiedades del sistema VMkernelsoftware– gestión de imágenes de software ESXi y paquetes para ESXistorage– comandos utilizados para gestionar el almacenamientosystem– comandos para configurar las propiedades del sistema VMkernel, el núcleo del sistema y los servicios del sistemavm– algunos comandos que se pueden utilizar para controlar las operaciones de las máquinas virtualesvsan– comandos de VMware vSAN
Los comandos principales aparecen como verbos que indican la misma acción:
list– muestra la lista de objetos disponibles para el espacio de nombres definido (por ejemplo,esxcli hardware bootdevice list– muestra los dispositivos de inicio disponibles)get– obtiene el valor de la configuración o propiedad definida (por ejemplo,esxcli hardware clock get– comprueba la hora configurada)set– establece manualmente el parámetro necesario (por ejemplo,esxcli hardware clock set -y 2024 -s 00– establece el año en 2024 y los segundos en 00)load/unload– cargar/descargar la configuración del sistema (esxcli network firewall load– cargar el módulo de cortafuegos y los ajustes del cortafuegos almacenados en el archivo de configuración)
Si no recuerda un comando ESXCLI concreto relacionado con el espacio de nombres adecuado, puede introducir el comando y ver una sugerencia en la salida de la consola.
Por ejemplo, escriba:
esxcli network para ver todos los comandos disponibles para el espacio de nombres de red
y, a continuación, escriba:
esxcli network vm para consultar los comandos del espacio de nombres de máquina virtual .

La ubicación del archivo de registro de ESXCLI se encuentra en /var/log/esxcli.log
. Los datos se escriben en este archivo si un comando de ESXCLI no se ha ejecutado correctamente. Si un comando de ESXCLI se ejecuta correctamente, no se escribe nada en este archivo de registro.
Comandos útiles de ESXCLI
Ahora que ya conoces el principio básico de funcionamiento de los comandos ESXCLI, veamos algunos ejemplos concretos de comandos útiles que se pueden utilizar en VMware vSphere. La lista de comandos ESXCLI que se trata en este artículo se divide en categorías equivalentes a los nombres de los espacios de nombres.
Comandos para comprobar los detalles del hardware en ESXi
Utilizando el espacio de nombres hardware , puede ver la información completa sobre los dispositivos instalados.
- Para ver los dispositivos PCI instalados, ejecute el siguiente comando ESXCLI:
esxcli hardware pci list | more - Compruebe la cantidad de memoria instalada en el servidor ESXi:
esxcli hardware memory get
- Vea la información detallada sobre los procesadores instalados:
esxcli hardware cpu list
Comandos del sistema ESXCLI
En esta sección, puede ver los comandos del espacio de nombres ESXCLI system .
- Comprobar la versión exacta de ESXi y el número de compilación, incluyendo el número de actualizaciones y parches instalados:
esxcli system version get - Comprobar el nombre de host de un servidor ESXi:
esxcli system hostname get - Comprobar la fecha de instalación de ESXi:
esxcli system stats installtime get
- Comprobar la configuración de SNMP:
esxcli system snmp get - Poner el host ESXi en modo de mantenimiento:
esxcli system maintenanceMode set --enable yes - Salir del modo de mantenimiento:
esxcli system maintenanceMode set --enable no
Después de poner un host ESXi en modo de mantenimiento, puede apagar o reiniciar el host.
- Apagar un host ESXi:
esxcli system shutdown poweroff - El comando para reiniciar el host es similar:
esxcli system shutdown reboot - También puede establecer un retraso e indicar un motivo para el reinicio del host, que se guardará en los registros del sistema:
esxcli system shutdown reboot -d 60 -r "Installing patches"En este ejemplo, el retraso es de 60 segundos.
Otro comando permite configurar un mensaje de bienvenida personalizado en lugar de la pantalla de fondo estándar con un menú principal inactivo sombreado, en el que se muestran el “ consejo y la dirección IP para la gestión del host. Tenga en cuenta que, después de configurar un mensaje de bienvenida personalizado, solo verá este mensaje en la pantalla negra. Puede escribir “Press F2” manualmente para evitar confusiones.
- El mensaje personalizado se puede utilizar para ocultar información sobre su host ESXi en la pantalla conectada al host ESXi cuando ningún usuario haya iniciado sesión.
esxcli system welcomemsg set -m="Welcome to NAKIVO! Press F2" - Verifique si el mensaje de bienvenida ya está configurado:
esxcli system welcomemsg get
Comandos de red de ESXCLI
El espacio de nombres network es uno de los más amplios de ESXCLI. Veamos los comandos que pueden resultar útiles para el diagnóstico.
- Comprobar el estado de las conexiones de red activas:
esxcli network ip connection list
- Ver la lista de adaptadores de red instalados:
esxcli network nic list
- Mostrar la información sobre las interfaces de red:
esxcli network ip interface list - Mostrar la información sobre las direcciones IP de las interfaces de red presentes en el servidor:
esxcli network ip interface ipv4 get - Mostrar la información de red de las máquinas virtuales:
esxcli network vm list
- Ver la configuración de búsqueda de dominios:
esxcli network ip dns search list - Ver los servidores DNS configurados en los ajustes de red:
esxcli network ip dns server list - Listar conmutadores virtuales y grupos de puertos:
esxcli network vswitch standard list - Mostrar estadísticas de la
vmnic0interfaz de red:esxcli network nic stats get -n vmnic0 - Comprobar el estado del cortafuegos y los ajustes de las reglas:
esxcli network firewall getesxcli network firewall ruleset listNOTA : La política predeterminada del cortafuegos es rechazar el tráfico si no se han configurado las reglas contrarias.
- Puede desactivar temporalmente el cortafuegos en un host ESXi para solucionar problemas:
esxcli network firewall set --enabled false - El cortafuegos debe activarse con el comando:
esxcli network firewall set --enabled true
Se recomienda tener activado el cortafuegos de ESXi por motivos de seguridad.
El network espacio de nombres incluye muchos comandos. En la sección « » de la entrada de hoy del blog solo se tratan los comandos básicos y más habituales de la sección «Network» . Es posible configurar un gran número de parámetros de red con ESXCLI, pero ello requeriría una guía detallada que excede el alcance del artículo de hoy.
Comandos de almacenamiento de ESXCLI
El espacio de nombres storage permite comprobar y editar los ajustes de almacenamiento.
- Comprueba la información sobre los volúmenes VMFS montados:
esxcli storage vmfs extent list - Ver las asignaciones de los sistemas de archivos VMFS a los dispositivos de disco:
esxcli storage filesystem list - Enumera todas las rutas iSCSI del sistema:
esxcli storage core path list - Muestra la lista de recursos compartidos NFS montados:
esxcli storage nfs list
Cómo comprobar SMART en ESXCLI
S.M.A.R.T. resulta útil para el diagnóstico de discos y para prevenir fallos en los mismos. Puedes leer la documentación sobre S.M.A.R.T. datos y, si detectas que algo va mal con tu disco, podrás tomar a tiempo la decisión de sustituirlo.
- En primer lugar, muestra una lista de todos los dispositivos de almacenamiento y localiza el nombre único del dispositivo (véase la captura de pantalla siguiente):
esxcli storage core device list - A continuación, utiliza el comando para obtener los datos S.M.A.R.T. de ese dispositivo de disco:
esxcli storage core device smart get -d naa.50026b7267020435donde
naa.50026b7267020435es el nombre del dispositivo utilizado en este ejemplo.
Comprobar la lista de adaptadores iSCSI
iSCSI es un protocolo muy utilizado para acceder al almacenamiento compartido a nivel de bloque, y existe un espacio de nombres independiente iscsi en ESXCLI para la gestión del almacenamiento iSCSI.
- Mostrar la lista de adaptadores iSCSI disponibles:
esxcli iscsi adapter list - Volver a detectar y escanear los adaptadores iSCSI:
esxcli iscsi adapter discovery rediscover -A adapter_nameesxcli storage core adapter rescan -A adapter_name
En lugar de -A adapter_name puede volver a escanear todos los adaptadores utilizando la opción --all .

Comprobar la lista de VIB de software de ESXi
Los paquetes de software destinados a ESXi suelen distribuirse como archivos VIB (paquete de instalación de vSphere). Un archivo VIB es similar a un contenedor con paquetes comprimidos que se pueden instalar en el sistema, con un descriptor y un archivo de firma. A su vez, los VIB suelen distribuirse como archivos empaquetados en un archivo comprimido en formato ZIP estándar. Es posible que tengas que incluir VIB en una imagen de ESXi para poder utilizar el hardware adecuado o instalar VIB en un sistema existente para aplicar un parche de seguridad.
- Puede ver la lista de paquetes VIB instalados en su host ESXi:
esxcli software vib list - Puede instalar un VIB con ESXCLI (el host ESXi debe estar en modo de mantenimiento):
esxcli software vib install -d /vmfs/volumes/datastore1/patches/patch_name.zip
Gestión de operaciones de máquinas virtuales en ESXCLI
El espacio de nombres vm se puede utilizar para realizar operaciones en los procesos de las máquinas virtuales en ejecución.
- Compruebe la lista de máquinas virtuales en ejecución y muestre sus World ID:
esxcli vm process list
Puede forzar el apagado de la máquina virtual que no responde mediante comandos del shell de ESXi. El uso de ESXCLI, en este caso, puede resultar útil cuando no es posible apagar una máquina virtual mediante la interfaz gráfica de usuario (GUI), como la de VMware vSphere Client, VMware Host Client o VMware Workstation.
- Apaga la máquina virtual utilizando el World ID que aparece en la salida del comando
esxcli vm process list. En el ejemplo actual, el World ID de la máquina virtual en cuestión es 75498.esxcli vm process kill -w 75498 -t soft - Si el método de apagado «suave» no ha funcionado, plantéate apagar inmediatamente la máquina virtual utilizando el método «duro».
esxcli vm process kill -w 75498 -t hard
Hay tres opciones disponibles para el comando « kill »:
soft– se envía una señal adecuada al sistema operativo invitado para apagar correctamente la máquina virtualhard– la máquina virtual se apaga de forma inmediataforce– la máquina virtual se apaga de forma similar a como se apaga un ordenador al desconectar el cable de alimentación. Utiliza este método de apagado de la máquina virtual solo si los dos anteriores no han funcionado.
También puedes ver este vídeo para descubrir los comandos más útiles en entornos VMware:
Otros comandos útiles del shell de ESXi
Además de los comandos ESXCLI, puedes utilizar muchos comandos del shell de ESXi:
- Abre la interfaz de usuario de ESXi (DCUI) desde la consola (los colores son diferentes cuando te conectas al shell de ESXi a través de SSH):
dcui
Pulse
Ctrl+Cpara volver al símbolo del sistema. - Convierta un disco virtual con aprovisionamiento «thick» en uno con aprovisionamiento «thin» utilizando
vmkfstools:vmkfstools -i /vmfs/volumes/vmfs_datastore/vm_name/thick_disk.vmdk -d thin /vmfs/volumes/vmfs_datastore/vm_name/new_thin_disk_name.vmdkEntre los comandos del shell de ESXi,
vmkfstoolses un potente comando para realizar operaciones de almacenamiento, así como para gestionar dispositivos de almacenamiento, volúmenes VMFS y discos virtuales. Obtenga más información sobre el aprovisionamiento «thick» y «thin», así como sobre la reducción de discos virtuales, en el entrada de blog. - Abra el gestor de tareas de ESXi:
esxtopDespués de abrir el gestor de tareas con el comando
esxtop, puede cambiar de pestaña pulsando las teclas correspondientes:C - CPUI – interruptM – memoryN – networkD – disk adapterU – disk deviceV – disk VMP – power management - Busque el archivo en el directorio actual:
find . -name filename.txt - Sustituya el carácter
.por el nombre del directorio en el que desea localizar un archivo, y sustituyafilename.txtpor el nombre de su archivo. Por ejemplo, si desea buscar un archivodiskname.vmdken el directorio/vmfs/volumes/, ejecute el comando:find /vmfs/volumes/ -name diskname.vmdk - Abra la consola interactiva de VMware:
vsish - Muestre los controladores vmkernel cargados:
vmkload_mod --list - Compruebe los ajustes de la partición de intercambio:
esxcli sched swap system get - Puede mostrar una lista de usuarios utilizando uno de los siguientes comandos:
esxcli system account listcat /etc/passwd or less/etc/passwd
- Puedes ver todos los comandos de ESXi ubicados en el directorio
sbin:ls /usr/sbin
Creación de un nuevo usuario
Existen al menos dos métodos para crear un nuevo usuario de ESXi mediante comandos del shell de ESXi.
El comando «adduser» de ESXi
- Si escribes el comando
adduseren la consola de ESXi, aparecerá el siguiente mensaje:-sh: adduser: not found - Debes definir la ruta completa al binario de busybox adecuado para ejecutar este comando:
/usr/lib/vmware/busybox/bin/busybox adduserAhora puedes ver las opciones de uso de este comando.
- Por último, ejecute el comando exacto para añadir un usuario del sistema ESXi:
/usr/lib/vmware/busybox/bin/busybox adduser -s /bin/sh -G root -h / user1Donde:
-s /bin/shes el shell que se utilizará después del inicio de sesión del usuario;-G rootes el nombre del grupo al que pertenecerá el nuevo usuario (el grupo «root»);-h /es el directorio de inicio (el directorio raíz) del nuevo usuario;user1es el nombre de usuario. - Introduzca una nueva contraseña y confirmarla cuando se le solicite.

Crear un usuario en ESXCLI
Como alternativa, puede añadir un nuevo usuario con un solo comando utilizando ESXCLI:
esxcli system account add -d="NAKIVO user" -i="nakivo" -p="Password-Test321" -c="Password-Test321"
Donde:
-d significa la descripción que se muestra
-p es la contraseña establecida para el nuevo usuario
-c es la confirmación de la contraseña
¿Qué método elegir para crear un nuevo usuario en la línea de comandos? El comando único utilizado en el segundo método puede parecer cómodo, pero no lo es en términos de seguridad. Si recuerdas, apareció un mensaje de advertencia justo después de iniciar sesión en el shell de ESXi:
Todos los comandos ejecutados en el shell de ESXi se registran y pueden incluirse en los paquetes de asistencia. No introduzcas contraseñas directamente en la línea de comandos. La mayoría de las herramientas pueden solicitar contraseñas o aceptarlas desde la entrada estándar .
Si te preocupa la seguridad, introduce los comandos sin incluir contraseñas como texto sin cifrar en los mismos. Si se necesita una contraseña, normalmente se solicita y se puede introducir en la entrada estándar de la consola. Por ejemplo, si desea crear un nuevo usuario con ESXCLI, utilice un comando como:
esxcli system account add -d="user2" -i="user2" -p -c
Se le solicitará una Contraseña de ESXi por separado y no se mostrará en la consola mientras introduce la contraseña.

Conclusión
Existen comandos de la consola de VMware para la gestión de los componentes del sistema, la red, el almacenamiento, el software VIB y las máquinas virtuales. El uso de la interfaz de línea de comandos en ESXi te ofrece más posibilidades, además de las atractivas interfaces gráficas de usuario de VMware vSphere Client y VMware Host Client.
Puedes utilizar los comandos del shell de ESXi de forma local y los comandos SSH de ESXi de forma remota para ver y configurar ajustes que están ocultos o no están disponibles en la interfaz gráfica de usuario. Utiliza la lista de comandos de ESXi que se proporciona en esta entrada del blog para realizar un ajuste preciso de ESXi y descubre las ventajas adicionales que ofrece el uso de la interfaz de línea de comandos en VMware vSphere.
Puede obtener más información leyendo sobre PowerCLI, otro tipo de interfaz de línea de comandos para la gestión de VMware vSphere desde Windows PowerShell.