vmrun : le PsExec pour ESX/ESXi

En tombant par hasard sur le site bien “old school” de William Lam et Tuan Duong, nous avons découvert (avec 6 mois de retard…) que la dernière version de VIX API (1.6.2) supportait ESX/ESXi !

VIX API est une bibliothèque permettant de créer des scripts et des programmes compilés pour interagir avec des host et/ou des vm. Mais ce qui nous intéresse ici, c’est un précieux utilitaire qui permet d’exécuter des commandes DANS les vm : vmrun

Voici un extrait liste des commandes de cet outil génial qui vous permettra, par exemple, d’installer un agent ou de déployer des mises à jour sur des vm en DMZ et donc non joignable depuis votre réseau de production :

COMMANDSDESCRIPTION
startStart a VM
stopStop a VM
resetReset a VM
suspendSuspend a VM
pausePause a VM
unpauseUnpause a VM
snapshotCreate a snapshot of a VM
deleteSnapshotRemove a snapshot from a VM
revertToSnapshotSet VM state to a snapshot
runProgramInGuestRun a program in Guest OS
fileExistsInGuestCheck if a file exists in Guest OS
listProcessesInGuestList running processes in Guest OS
killProcessInGuestKill a process in Guest OS
runScriptInGuestRun a script in Guest OS
deleteFileInGuestDelete a file in Guest OS
createDirectoryInGuestCreate a directory in Guest OS
deleteDirectoryInGuestDelete a directory in Guest OS
listDirectoryInGuestList a directory in Guest OS
copyFileFromHostToGuestCopy a file from host OS to guest OS
copyFileFromGuestToHostCopy a file from guest OS to host OS
renameFileInGuestRename a file in Guest OS
captureScreenCapture the screen of the VM to a local file
writeVariableWrite a variable in the VM state
readVariableRead a variable in the VM state
listList all running VMs
upgradevmUpgrade VM file format, virtual hw
installtoolsInstall Tools in Guest
registerRegister a VM
unregisterUnregister a VM
listRegisteredVMList registered VMs
cloneCreate a copy of the VM

Quelques exemples :

Supprimer un fichier dans une VM :

C:\Program Files\VMware\VMware VIX\vmrun.exe -T ESX -h https://vcenter.vmware.com/sdk -u vcadmin -p "vcpassword" -gu gadmin -gp "gpassword" deleteFileInGuest "[datastore] VM/VM.vmx" c:\test.txt

Copier un fichier depuis le vCenter vers une vm :

C:\Program Files\VMware\VMware VIX\vmrun.exe -T ESX -h https://vcenter.vmware.com/sdk -u vcadmin -p "vcpassword" copyFileFromHostToGuest "[datastore] VM/VM.vmx" c:\vctemp\agent.exe c:\utils\agent.exe

Faire un screenshot d’une vm :

C:\Program Files\VMware\VMware VIX\vmrun.exe -T ESX -h https://vcenter.vmware.com/sdk -u vcadmin -p "vcpassword" captureScreen "[datastore] VM/VM.vmx" c:\vm.png

Pour ceux qui commence à aimer le powershell (merci le VI toolkit), une library .NET est maintenant disponible.

Update : VMWareTasks est maintenant disponible sur codeplex

Tags: , , ,

Leave a Reply