vmrun : le PsExec pour ESX/ESXi
Posted by NiTRo | Filed under Tips & Tricks, VMware
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 :
COMMANDS | DESCRIPTION |
---|---|
start | Start a VM |
stop | Stop a VM |
reset | Reset a VM |
suspend | Suspend a VM |
pause | Pause a VM |
unpause | Unpause a VM |
snapshot | Create a snapshot of a VM |
deleteSnapshot | Remove a snapshot from a VM |
revertToSnapshot | Set VM state to a snapshot |
runProgramInGuest | Run a program in Guest OS |
fileExistsInGuest | Check if a file exists in Guest OS |
listProcessesInGuest | List running processes in Guest OS |
killProcessInGuest | Kill a process in Guest OS |
runScriptInGuest | Run a script in Guest OS |
deleteFileInGuest | Delete a file in Guest OS |
createDirectoryInGuest | Create a directory in Guest OS |
deleteDirectoryInGuest | Delete a directory in Guest OS |
listDirectoryInGuest | List a directory in Guest OS |
copyFileFromHostToGuest | Copy a file from host OS to guest OS |
copyFileFromGuestToHost | Copy a file from guest OS to host OS |
renameFileInGuest | Rename a file in Guest OS |
captureScreen | Capture the screen of the VM to a local file |
writeVariable | Write a variable in the VM state |
readVariable | Read a variable in the VM state |
list | List all running VMs |
upgradevm | Upgrade VM file format, virtual hw |
installtools | Install Tools in Guest |
register | Register a VM |
unregister | Unregister a VM |
listRegisteredVM | List registered VMs |
clone | Create 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: ESX, ESXi, scripting, Tips & Tricks