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









