Commandes ESX

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Commandes CLI ESX/ESXi (Service Console + esxcli/vim-cmd)
Portée Système, réseau, stockage, HA/DRS, VM
Outils clés esxcfg-*, vim-cmd, esxcli, Vmkfstools
Voir aussi Stop-VM · Vcenter · Powercli

Commandes ESX regroupe les commandes CLI VMware permettant de dialoguer directement avec un hôte ESX/ESXi, sans passer par vCenter — utiles en administration bas niveau, en dépannage ou en automatisation (scripts, vCLI/PowerCLI). Sur ESX classic (avec Service Console, abandonné depuis ESXi 5.x), ces commandes s'exécutent en shell local ; sur ESXi (sans Service Console), l'équivalent passe par le shell ESXi (SSH) ou par la vSphere CLI (vCLI) installée sur un poste distant.

Principaux préfixes de binaires : vmware-*, esx*, vmk*, sg_*.

Commandes générales

Emplacement des binaires : /usr/sbin

Build number de l'hôte :

vmware -l

Occupation des partitions :

vdf -h

Paramètres d'authentification :

esxcfg-auth

Drivers chargés au démarrage :

esxcfg-module -l

Description d'un code d'erreur VMkernel :

vmkerrcode <error_code_number>

Lister les VM enregistrées et agir dessus (démarrer, suspendre, état) :

vmware-cmd -l
vmware-cmd /vmfs/volumes/datastore1/vm1/vm1.vmx start
vmware-cmd /vmfs/volumes/datastore1/vm1/vm1.vmx suspend
vmware-cmd /vmfs/volumes/datastore1/vm1/vm1.vmx getstate

Autres outils :

  • console-setup — menu de configuration de l'hôte (ESX classic)
  • esxtop — supervision temps réel CPU/mémoire/réseau/stockage
  • esxupdate — gestion des patchs (ESX classic ; remplacé sur ESXi par esxcli software / Update-manager)
  • svmotion — Storage vMotion en ligne de commande
  • vm-support — collecte de logs de support VMware

Réseau

Cartes réseau physiques :

esxcfg-nics -l

vSwitchs et Port Groups :

esxcfg-vswitch -l

Interfaces VMkernel (ports) :

esxcfg-vmknic -l

Interfaces Service Console, ESX classic uniquement (ports) :

esxcfg-vswif -l

Passerelle par défaut du VMkernel :

esxcfg-route

Firewall

État du firewall :

esxcfg-firewall -q

Liste des services connus du firewall :

esxcfg-firewall -s

Activer / désactiver un service :

esxcfg-firewall -e <service_name>
esxcfg-firewall -d <service_name>

Ouvrir un port spécifique :

esxcfg-firewall -o <port>,<protocol>,<direction>,<name>

Stockage

Manipulation des volumes VMFS et vmdk : voir Vmkfstools (man vmkfstools pour le détail des options).

Périphériques de stockage :

esxcfg-scsidevs -c

LUNs, chemins et multipathing :

esxcfg-mpath -L

Volumes / snapshots VMFS :

esxcfg-volume -l

Tester la connectivité VMkernel (ping via la pile réseau du VMkernel, utile pour diagnostiquer le stockage IP) :

vmkping <ip>

Adaptateur iSCSI matériel (Qlogic) :

esxcfg-hwiscsi -l

iSCSI logiciel :

esxcfg-swiscsi -q

LUN iSCSI :

vmkiscsi-tool -L -l <adapter>

Rescan des LUN iSCSI :

esxcfg-rescan <adapter>

Exports NFS montés par le VMkernel :

esxcfg-nas -l

HA et DRS

Hôtes primaires HA — ESX classic, ancien agent AAM, obsolète depuis vSphere 5 (remplacé par FDM) :

cat /var/log/vmware/aam/aam_confi_util_listnode.log

Pools de ressources :

esxcfg-resgrp -l

Mode promiscuous

Sur ESX classic (module noyau vmklinux), forcer le mode promiscuous d'une vmnic (syntaxe historique, à vérifier selon version) :

echo "PromiscuousAllowed yes" > /proc/vmware/net/vmnicN/config

Commandes d'urgence (vim-cmd)

vim-cmd reste disponible en shell ESXi même quand hostd répond mal ; utile pour dépanner une VM bloquée.

Lister les espaces de commandes disponibles :

vim-cmd vmsvc

Lister les VM avec leur ID :

vim-cmd vmsvc/getallvms

Forcer la mise à niveau de VMware Tools :

vim-cmd vmsvc/tools.upgrade <ID_machine>

État d'alimentation d'une VM :

vim-cmd vmsvc/power.getstate <ID_machine>
vim-cmd vmsvc/get.runtime <ID_machine>

Déplacer une VM entre datastores sans licence vCenter (ESXi 5)

Utile quand Storage vMotion n'est pas disponible (édition sans licence vMotion). Principe : lister, dé-enregistrer, déplacer les fichiers, ré-enregistrer.

vim-cmd vmsvc/getallvms
vim-cmd vmsvc/unregister <VMID>
mv "/vmfs/volumes/<LUN source>/<vmname>" "/vmfs/volumes/<LUN destination>/<vmname>"
vim-cmd solo/registervm /vmfs/volumes/<LUN destination>/<vmname>/<vmname>.vmx
vim-cmd vmsvc/power.on <VMID>

Correction : la syntaxe d'origine vim-cmd /solo/register comportait un slash de trop devant la commande et un nom de sous-commande erroné — la forme correcte est vim-cmd solo/registervm <chemin.vmx>.

API

L'hôte expose son WSDL vSphere API à une URL du type :

https://<hôte-esxi>/sdk/vimService.wsdl

Voir aussi