El VMware Infrastructure (VI) Perl Toolkit proporciona un interfaz de programación en Perl que permite el acceso al VI API para automatizar muchas tareas asociadas a la administración de nuestra infraestructura virtual.
El VI API consta de una serie de WEB services alojados en el servidor ESXi, en https://nuestroesxi/sdk/
Mediante el kit de herramientas Perl de VMware podemos realizar casi cualquiera de las acciones que llevamos a cabo desde el cliente vSphere. Gracias a él podremos crear nuestros propios scripts para hacer más fácil la gestión o la monitorización de nuestros ESXi y las máquinas virtuales que contienen.
Para usarlo, es necesario instalar el VMware VIX API y el vSphere SDK for Perl en la maquina desde la que vayamos a consultar los WEB services del ESXi y ambos paquetes están disponibles tanto para Windows como para Linux.
En Debian, la instalación es superflua pues ambos paquetes constan de un script vmware-install.pl que funciona a la perfección.
Una vez instalados los paquetes ya podemos empezar a jugar, por ejemplo, con el comando vmrun.
El propio comando vmrun proporciona algunos ejemplos de su uso:
Examples: Starting a virtual machine with Workstation on a Windows host vmrun -T ws start "c:\my VMs\myVM.vmx" Stopping a virtual machine with Server on a linux host vmrun -T server -h https://myHost.com/sdk -u hostUser -p hostPassword stop "[storage1] vm/myVM.vmx" Running a program in a virtual machine with Workstation on a Windows host with Windows guest vmrun -T ws -gu guestUser -gp guestPassword runProgramInGuest "c:\my VMs\myVM.vmx" "c:\Program Files\myProgram.exe" Running a program in a virtual machine with Server on a linux host with linux guest vmrun -T server -h https://myHost.com/sdk -u hostUser -p hostPassword -gu guestUser -gp guestPassword runProgramInGuest "[storage1] vm/myVM.vmx" /usr/bin/X11/xclock -display :0 Creating a snapshot of a virtual machine with Workstation on a Windows host vmrun -T ws snapshot "c:\my VMs\myVM.vmx" mySnapshot Reverting to a snapshot with Workstation on a Windows host vmrun -T ws revertToSnapshot "c:\my VMs\myVM.vmx" mySnapshot Deleting a snapshot with Workstation on a Windows host vmrun -T ws deleteSnapshot "c:\my VMs\myVM.vmx" mySnapshot
Un ejemplo práctico sería listar las máquinas virtuales corriendo en un determinado host ESXi:
root@nagios:~/src# vmrun -T server -h https://nombre.servidor.esxi/sdk -u root -p password list Total running VMs: 3 [datastore1] XP SP3 INGLES/XP SP3 INGLES.vmx [datastore1] 7 ultimate/7 ultimate.vmx [datastore1] CentOS/CentOS5.vmx [datastore1] BT4-R1/BT4-R1.vmx [datastore2] Debian testing/debian testing.vmx
Con el paquete se incluyen toda una serie de utilidades en forma de scripts Perl que se instalan en /usr/lib/vmware-vcli/apps que están ampliamente documentadas por VMware.
Podemos usar estas utilidades tal cual o extraer de ellas las ideas que nos parezcan interesantes para realizar nuestros propios scripts.
A modo de ejemplo, la salida de vminfo.pl:
root@nagios:/usr/lib/vmware-vcli/apps/vm# perl vminfo.pl --url https://nombre.servidor.esxi/sdk --username root --password password --vmname example-pre Information of Virtual Machine example-pre Name: example-pre No. of CPU(s): 2 Memory Size: 1024 Virtual Disks: 2 Template: 0 vmPathName: [datastore2] vm-example/vm-example.vmx Guest OS: Red Hat Enterprise Linux 5 (64-bit) guestId: rhel5_64Guest Host name: example-pre IP Address: 172.16.90.5 VMware Tools: VMware Tools is running, but the version is not current Cpu usage: 447 MHz Host memory usage: 1075 MB Guest memory usage: 51 MB Overall Status: The entity is OK
En una próxima entrega postearé un ejemplo práctico de un script que he realizado para mantener un inventario de las máquinas virtuales que tenemos en todos nuestros ESXi.
Ejemplo práctico: Usando el VI Perl Toolkit de VMware | desdelaconsola.es wrote:
[…] el post anterior, “Aproximación al VMware Infrastructure Perl Toolkit” vimos la gran cantidad de tareas que podemos realizar usando este kit de […]
Link | octubre 4th, 2011 at 11:50