Puede utilizar vSphere Client, la interfaz gráfica de usuario proporcionada por VMware, y VMware vSphere Web/HTML5 Client, que es basada en web, para administrar los hosts ESXi y su entorno VMware. Aunque la mayoría de las configuraciones están disponibles en la GUI, a veces puede necesitar obtener información o cambiar una configuración que no se muestra en la GUI.
En este caso, necesita la interfaz de línea de comandos (CLI) o la “consola”, que le permite configurar todas las configuraciones, incluidas las ocultas. Además de los comandos tradicionales que son los mismos en Linux y ESXi, ESXi tiene sus propios comandos ESXCLI.
Esta publicación de blog se ha creado en el formato de un catálogo que enumera comandos ESXCLI útiles, que son parte de los comandos de la shell ESXi.
Cómo abrir la consola de la shell ESXi
De forma predeterminada, la shell ESXi está deshabilitada para el acceso local y remoto. Esto significa que no puede ejecutar comandos de la shell ESXi hasta que habilite la shell ESXi o el acceso SSH. VMware impone esta restricción por razones de seguridad.
Vamos a ver los tres métodos principales para habilitar la interfaz de línea de comandos en ESXi.
Habilitar acceso a la consola utilizando la interfaz ESXi predeterminada
Este método se utiliza cuando tiene acceso físico a un host ESXi, incluido el monitor y el teclado del host.
- En la Interfaz de Usuario de Consola Directa (DCUI) de ESXi, vaya a Opciones de Solución de Problemas, navegue hasta las cadenas Habilitar Shell ESXi y Habilitar SSH, y presione Enter para habilitar cada opción.
- Después de habilitar la shell de ESXi, presiona Alt+F1 para abrir la consola en la máquina que ejecuta ESXi. Debes ingresar tu nombre de usuario y contraseña después de eso (puedes usar las credenciales del usuario root).
- Puedes ejecutar comandos de la shell de ESXi.
- Si necesitas regresar al DCUI de ESXi, presiona Alt+F2. La opción Habilitar SSH te permite abrir la consola de ESXi de forma remota utilizando un cliente SSH.
Habilitar el acceso a la consola usando VMware Host Client
- Abre un navegador web e ingresa la dirección IP de tu host ESXi en la barra de direcciones, luego inicia sesión.
- Ve a Host > Acciones > Servicios y haz clic en Habilitar Secure Shell (SSH) para habilitar el acceso SSH hasta que ESXi se reinicie.
De manera similar, puedes habilitar la shell de consola en un host ESXi local en el menú Servicios. Ve a Administrar > Servicios. Haz clic derecho en el servicio TSM-SSH. Selecciona Política > Iniciar y detener con el host para habilitar el acceso SSH incluso después de que ESXi se reinicie.
- Ahora puedes conectarte a la consola de ESXi utilizando tu cliente SSH de forma remota.
Habilitar el acceso a la consola utilizando vCenter y VMware vSphere Client
Este método se puede utilizar si tu host ESXi está gestionado por vCenter Server.
- Inicia sesión en el Cliente de vSphere HTML5 de VMware en un navegador web.
- Ve a Hosts y Clusters y selecciona tu host ESXi.
- Selecciona la pestaña Configurar, abre Sistema > Servicios, y haz clic en SSH en la lista de servicios.
- Presiona Inicio para iniciar el servidor SSH una vez o presiona Editar Política de Inicio y selecciona Iniciar y Detener con el host si deseas habilitar el servidor SSH por un período prolongado. También puedes habilitar el shell ESXi en el menú Servicios.
Una vez habilitado el acceso SSH, puedes conectarte a un host ESXi con un cliente SSH de forma remota y ejecutar comandos ESXCLI.
Conexión via SSH
Para conectarte a la consola ESXi de forma remota via SSH, en la consola de Linux, realiza las siguientes acciones.
- Ejecuta un comando como:
ssh 192.168.101.221
o
donde 192.168.101.221 es la dirección IP del servidor ESXi utilizada en este ejemplo.
- Debes ingresar el nombre de usuario y la contraseña del usuario ESXi (root puede ser utilizado como usuario administrativo predeterminado en ESXi).
De manera similar, puedes conectarte de un host ESXi a otro mediante SSH en la línea de comandos.
En Windows, puedes usar PuTTY:
- Abre PuTTY
- Ingresa la dirección IP del host ESXi y el puerto.
- Pulsa Abrir para conectarte al host ESXi mediante SSH.
Conectar a un host ESXi mediante SSH y ejecutar comandos ESXCLI de forma remota es el enfoque más común y seguro.
Cómo instalar ESXCLI en Linux
La forma alternativa de ejecutar comandos ESXCLI de forma remota es instalando ESXCLI en Linux. Python debe estar instalado para este propósito. A continuación, se detallan los principales pasos para instalar ESXCLI en Linux:
- Haz una copia de seguridad de tu máquina Linux antes de realizar cambios en el sistema.
- Descarga ESXCLI desde el sitio 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 dirección_IP_ESXI --help
Obtendrás un error porque ESXi requiere una relación de confianza entre los hosts:
Error de certificado. Huella SHA-256 del servidor: 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 (no confiable)
- Para solucionar este problema, ejecuta el comando especificando un nombre de usuario, contraseña y la huella mostrada en el mensaje de error anterior:
esxcli --server 192.168.101.101 --username root --password 'tu_contraseña' --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
Alternativamente, puedes intentar instalar un certificado en una máquina Linux. Un certificado se almacena en /etc/vmware/ssl/rui.crt en un host ESXi.
Vista general de los comandos ESXCLI
ESXCLI, parte de la cáscara ESXi, es un marco de CLI para administrar una infraestructura virtual (componentes ESXi como hardware, red, almacenamiento, etc.) y controlar ESXi mismo a un nivel bajo. Técnicamente, ESXCLI es un script de Python (/bin/esxcli.py en ESXi). Todos los comandos ESXCLI deben ejecutarse en la cáscara ESXi (consola). Generalmente, esxcli
es el comando que tiene una amplia lista de subcomandos llamados espacios de nombres y sus opciones. El comando esxcli
está presente justo después de la instalación de ESXi, junto con otros comandos de la cáscara ESXi.
Puede ubicar esxcli y explorar la naturaleza de ESXCLI después de ejecutar los siguientes comandos:
which esxcli
ls -l /sbin/esxcli
Como puede asegurarse al verificar 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 usar el editor de texto integrado vi.
Básicamente, la sintaxis de ESXCLI es la siguiente:
esxcli [opciones] {espacio de nombres}+ {cmd} [opciones del cmd]
Así, ESXCLI consiste en ramas que son las categorías principales (espacios de nombres) de los comandos ESXCLI. Tenga en cuenta que los comandos esxcli son sensibles a mayúsculas y minúsculas, de manera similar a otros comandos de consola utilizados en ESXi. La lista completa de todos los espacios de nombres y comandos ESXCLI disponibles se muestra después de ejecutar el comando:
esxcli esxcli lista de comandos
La lista de comandos ESXCLI disponibles depende de la versión de ESXi. Se pueden agregar nuevos comandos.
Por lo tanto, la lista de los principales espacios de nombres de ESXCLI para ESXi 8.0 es la siguiente:
- dispositivo – comandos del administrador de dispositivos
- esxcli – comandos relacionados con ESXCLI en sí mismo
- fcoe – comandos de Fibre Channel sobre Ethernet
- gráficos – comandos de gráficos de VMware
- hardware – comandos para verificar propiedades de hardware y configurar hardware
- iscsi – comandos iSCSI de VMware
- red – este espacio de nombres incluye una amplia gama de comandos para gestionar la configuración general de red del host (como la dirección IP, configuraciones DNS de un host ESXi, firewall) y componentes de red virtual como vSwitch, grupos de puertos, etc.
- nvme – gestionar extensiones para el controlador VMware NVMe
- rdma – comandos para gestionar la pila de protocolo de acceso directo a memoria remota
- programación – comandos utilizados para configurar la programación y las propiedades del sistema VMkernel
- software – gestionar imágenes de software de ESXi y paquetes para ESXi
- almacenamiento – comandos utilizados para gestionar almacenamiento
- sistema – comandos para configurar propiedades del sistema VMkernel, el núcleo del sistema y servicios del sistema
- vm – algunos comandos que se pueden utilizar para controlar operaciones de máquinas virtuales
- vsan – comandos de VMware vSAN
Los comandos principales aparecen como verbos indicando la misma acción:
- lista – muestra la lista de objetos disponibles para el espacio de nombres definido (por ejemplo,
esxcli hardware bootdevice list
– lista los dispositivos de arranque disponibles) - obtener – obtener el valor de la configuración o propiedad definida (por ejemplo,
esxcli hardware clock get
– verifica la hora establecida) - establecer – establecer el parámetro necesario manualmente (por ejemplo,
esxcli hardware clock set -y 2024 -s 00
– establece el año en 2024 y establece los segundos en 00) - cargar/descargar – cargar/descargar la configuración del sistema (
esxcli network firewall load
– carga el módulo de firewall y la configuración de firewall almacenada en el archivo de configuración)
Si no recuerdas un comando ESXCLI particular relacionado con el espacio de nombres apropiado, puedes ingresar el comando y ver un consejo en la salida de la consola.
Por ejemplo, escribe:
esxcli network
para ver todos los comandos disponibles para el espacio de nombres network
y luego escribe:
esxcli network vm
para verificar los comandos para el espacio de nombres vm.
El archivo de registro de ESXCLI se encuentra en /var/log/esxcli.log
Los datos se escriben en este archivo si un comando ESXCLI no se ha ejecutado correctamente. Si un comando ESXCLI se ejecuta correctamente, no se escribe nada en este archivo de registro.
Comandos ESXCLI Útiles
Ahora que estás familiarizado con el principio básico de funcionamiento de los comandos ESXCLI, veamos ejemplos específicos de comandos útiles que se pueden utilizar en VMware vSphere. La lista de comandos ESXCLI considerados en este artículo se divide en categorías equivalentes a los nombres de espacio.
Comandos para verificar detalles del hardware en ESXi
Al utilizar el espacio de nombres hardware, puedes ver toda la información sobre los dispositivos instalados.
- Para ver los dispositivos PCI instalados, ejecuta el siguiente comando ESXCLI:
esxcli hardware pci list | more
- Verifica la cantidad de memoria instalada en el servidor ESXi:
esxcli hardware memory get
- Visualiza la información detallada sobre los procesadores instalados:
esxcli hardware cpu list
Comandos del sistema ESXCLI
En esta sección, puedes ver los comandos del espacio de nombres sistema ESXCLI.
- Verifica la versión precisa de ESXi y el número de compilación, incluyendo el número de actualizaciones y parches instalados:
esxcli system version get
- Verifique el nombre de host de un servidor ESXi:
esxcli system hostname get
- Verifique la hora de instalación de ESXi:
esxcli system stats installtime get
- Verifique la configuración SNMP:
esxcli system snmp get
- Ingrese el host ESXi al modo de mantenimiento:
esxcli system maintenanceMode set --enable yes
- Salir del modo de mantenimiento:
esxcli system maintenanceMode set --enable no
Después de ingresar un host ESXi al modo de mantenimiento, puede apagar o reiniciar el host.
- Apague un host ESXi:
esxcli system shutdown poweroff
- El comando para reiniciar el host es similar:
esxcli system shutdown reboot
-
esxcli system shutdown reboot -d 60 -r "Instalando parches"
En este ejemplo, el retraso es de 60 segundos.
Otro comando es establecer el mensaje de bienvenida personalizado en lugar de una pantalla de fondo estándar con un menú principal inactivo sombreado donde se muestra el consejo “<F2> Personalizar sistema/Ver registros <F12> Apagar/Reiniciar” y la dirección IP para administrar el host. Tenga en cuenta que después de establecer un mensaje de bienvenida personalizado, solo verá este mensaje establecido en la pantalla negra. Puede escribir “Pulse 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 un usuario no ha iniciado sesión.
esxcli system welcomemsg set -m="¡Bienvenido a NAKIVO! Presione F2"
- Verifique si el mensaje de bienvenida ya está establecido:
esxcli system welcomemsg get
Comandos de red ESXCLI
El espacio de nombres de red es uno de los más grandes de ESXCLI. Vamos a explorar los comandos que pueden ser útiles para diagnósticos.
- Verificar 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 para las VMs:
esxcli network vm list
- Ver las configuraciones de búsqueda de dominio:
esxcli network ip dns search list
- Ver los servidores DNS establecidos en la configuración de red:
esxcli network ip dns server list
- Enumerar switches virtuales y grupos de puertos:
esxcli network vswitch standard list
- Mostrar estadísticas para la interfaz de red vmnic0:
esxcli network nic stats get -n vmnic0
- Comprobar el estado del firewall y la configuración de reglas:
esxcli network firewall get
esxcli network firewall ruleset list
NOTA: La política de firewall predeterminada es descartar el tráfico si no se establecen las reglas opuestas.
- Puedes deshabilitar temporalmente el firewall en un host ESXi para solucionar problemas:
esxcli network firewall set --enabled false
- El firewall debe activarse con el comando:
esxcli network firewall set --enabled true
Se recomienda tener el firewall de ESXi activado por razones de seguridad.
El espacio de nombres red incluye muchos comandos. Solo se consideran los básicos y los más populares en la sección Red del post del blog de hoy. Es posible configurar un gran número de parámetros de red con ESXCLI, pero requeriría un recorrido detallado que está fuera del alcance del artículo de hoy.
Comandos de almacenamiento ESXCLI
El espacio de nombres almacenamiento te permite verificar y editar la configuración de almacenamiento.
- Verifica la información sobre los volúmenes VMFS montados:
esxcli storage vmfs extent list
- Ver las asignaciones de sistemas de archivos VMFS a dispositivos de disco:
esxcli storage filesystem list
- Lista todas las rutas iSCSI en el sistema:
esxcli storage core path list
- Mostrar la lista de montajes NFS compartidos:
esxcli storage nfs list
Cómo verificar SMART en ESXCLI
S.M.A.R.T. is useful for disk diagnostics and for preventing disk failure. You can read the S.M.A.R.T. data and, if you discover that something is wrong with your disk, you can make a timely decision to replace the disk.
- Primero, enumere todos los dispositivos de almacenamiento y localice el nombre de dispositivo único (ver la captura de pantalla a continuación):
esxcli storage core device list
- Luego use el comando para obtener los datos S.M.A.R.T. de ese dispositivo de disco:
esxcli storage core device smart get -d naa.50026b7267020435
donde naa.50026b7267020435 es el nombre del dispositivo utilizado en este ejemplo.
Verificar la lista de adaptadores iSCSI
iSCSI es un protocolo ampliamente utilizado para acceder a almacenamiento compartido a nivel de bloque, y hay un espacio de nombres separado iscsi en ESXCLI para administrar el almacenamiento iSCSI.
- Mostrar la lista de adaptadores iSCSI disponibles:
esxcli iscsi adapter list
- Re-descubrir y escanear nuevamente los adaptadores iSCSI:
esxcli iscsi adapter discovery rediscover -A nombre_adaptador
esxcli storage core adapter rescan -A nombre_adaptador
En lugar de -A nombre_adaptador
puedes escanear todos los adaptadores utilizando la opción --all
.
Verificar la lista de VIB de software de ESXi
Los paquetes de software destinados a ESXi generalmente se distribuyen como archivos VIB (vSphere installation bundle). Un archivo VIB es similar a un contenedor con paquetes comprimidos que se pueden instalar en el sistema, con un archivo de descriptor y un archivo de firma. A su vez, los VIB generalmente se distribuyen como archivos empaquetados en un archivo de archivo en el formato ZIP estándar. Es posible que necesites incluir VIB en una imagen de ESXi para usar el hardware apropiado o instalar VIB en un sistema existente para aplicar una revisión de seguridad.
- Puedes ver la lista de paquetes VIB instalados en tu host de ESXi:
esxcli software vib list
- Puedes instalar un VIB con ESXCLI (el host de ESXi debe estar en modo de mantenimiento):
esxcli software vib install -d /vmfs/volumes/datastore1/patches/nombre_revisión.zip
Administrar operaciones de VM en ESXCLI
El espacio de nombres vm se puede utilizar para operaciones en procesos de máquinas virtuales en ejecución.
- Consulte la lista de VM en ejecución y muestre sus ID de World:
esxcli vm process list
Puede detener la máquina virtual no receptiva con comandos de shell ESXi. El uso de ESXCLI, en este caso, puede ser útil cuando una VM no se puede apagar mediante la GUI, como la GUI de VMware vSphere Client, VMware Host Client o VMware Workstation.
- Apague la VM usando el ID de World mostrado en la salida del comando
esxcli vm process list
. En el ejemplo actual, el ID de World de la VM necesaria es 75498.esxcli vm process kill -w 75498 -t soft
- Si el tipo de comando soft no fue útil, considere realizar un apagado inmediato de la VM usando el método hard.
esxcli vm process kill -w 75498 -t hard
Existen tres opciones de comando disponibles para el comando kill:
- soft – se envía una señal correcta al sistema operativo invitado para apagar correctamente una VM
- hard – se apaga una VM inmediatamente
- forzar – La MV se apaga de manera similar a como se apaga una computadora al desconectar el cable de alimentación. Solo use este tipo de apagado de la MV si los dos tipos anteriores fueron infructuosos.
Otros Comandos Útiles de Shell ESXi
Además de los comandos ESXCLI, puedes utilizar muchos comandos de shell ESXi:
- Abre el DCUI de ESXi desde la consola (los colores son diferentes cuando te conectas a la shell de ESXi a través de SSH):
dcui
Pulsa Ctrl+C para volver al indicador de comando.
- Convierte un disco virtual con provisión gruesa en un disco virtual con provisión delgada 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.vmdk
Entre los comandos de shell ESXi, vmkfstools es un comando potente para realizar operaciones de almacenamiento, así como para administrar dispositivos de almacenamiento, volúmenes VMFS y discos virtuales. Lee más sobre la provisión gruesa y delgada, así como sobre la reducción de discos virtuales en la entrada de blog.
- Abra el administrador de tareas de ESXi:
esxtop
Después de abrir el administrador de tareas con el comando
esxtop
, puede cambiar entre pestañas presionando las teclas apropiadas:C – CPU
I – interrupción
M – memoria
N – red
D – adaptador de disco
U – dispositivo de disco
V – VM de disco
P – administración de energía
- Encuentre el archivo en el directorio actual:
find . -name filename.txt
- Reemplace el carácter . con el nombre del directorio en el que desea ubicar un archivo, y reemplace
filename.txt
con el nombre de su archivo. Por ejemplo, si desea encontrar un archivo diskname.vmdk en el directorio /vmfs/volumes/, ejecute el comando:find /vmfs/volumes/ -name diskname.vmdk
- Abra la consola interactiva de VMware:
vsish
- Mostrar los controladores de vmkernel cargados:
vmkload_mod --list
- Verificar la configuración de la partición de intercambio:
esxcli sched swap system get
- Puede listar usuarios utilizando uno de los siguientes comandos:
esxcli system account list
cat /etc/passwd or less/etc/passwd
- Puede ver todos los comandos de ESXi ubicados en el directorio sbin:
ls /usr/sbin
Crear un nuevo usuario
Existen al menos dos métodos para crear un nuevo usuario de ESXi utilizando comandos de shell de ESXi.
El comando ESXi adduser
- Si escribes el comando
adduser
en la consola de ESXi, recibirás el mensaje:-sh: adduser: not found
- Debes definir la ruta completa al binario apropiado de busybox para ejecutar este comando:
/usr/lib/vmware/busybox/bin/busybox adduser
Ahora puedes ver las opciones de uso de este comando.
- Finalmente, ejecuta el comando exacto para agregar un usuario del sistema ESXi:
/usr/lib/vmware/busybox/bin/busybox adduser -s /bin/sh -G root -h / user1
Donde:
-s /bin/sh es el shell utilizado después del inicio de sesión del usuario;
-G root – el nombre del grupo del cual el nuevo usuario es miembro (el grupo root);
-h / es el directorio home (el directorio raíz) del nuevo usuario;
user1 es el nombre de usuario.
- Introduce una nueva contraseña y confirma la contraseña cuando se te solicite.
Crear un usuario en ESXCLI
Como alternativa, puedes agregar un nuevo usuario con solo un comando utilizando ESXCLI:
esxcli system account add -d="NAKIVO user" -i="nakivo" -p="Password-Test321" -c="Password-Test321"
Donde:
-d significa la descripción mostrada
-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 conveniente pero no en términos de seguridad. Si recuerdas, hubo un mensaje de advertencia mostrado 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 paquetes de soporte. No proporciones contraseñas directamente en la línea de comandos. La mayoría de las herramientas pueden solicitar secretos o aceptarlos desde la entrada estándar.
Si la seguridad es una preocupación para ti, introduce comandos sin incluir contraseñas como texto plano en los comandos. Si se necesita una contraseña, generalmente se solicita y se puede ingresar en la entrada de consola estándar. Por ejemplo, si deseas crear un nuevo usuario con ESXCLI, utiliza un comando como:
esxcli system account add -d="user2" -i="user2" -p -c
Se solicitará una contraseña de ESXi por separado y no se mostrará en la consola al ingresar la contraseña.
Conclusión
Existen comandos de consola de VMware para administrar componentes del sistema, red, almacenamiento, software VIB y máquinas virtuales. El uso de la interfaz de línea de comandos en ESXi te brinda más poder además de las agradables interfaces gráficas de usuario de VMware vSphere Client y VMware Host Client.
Puedes utilizar comandos de shell de ESXi localmente y comandos de SSH de ESXi de forma remota para ver y configurar configuraciones que están ocultas o no están disponibles en la GUI. Utiliza la lista de comandos de ESXi proporcionada en esta publicación de blog para ajustar finamente ESXi y experimenta el poder extra de utilizar la interfaz de línea de comandos en VMware vSphere.
Puedes aprender más al leer sobre PowerCLI, otro tipo de interfaz de línea de comandos para administrar VMware vSphere desde Windows PowerShell.
Source:
https://www.nakivo.com/blog/most-useful-esxcli-esxi-shell-commands-vmware-environment/