Aproximación al VMware Infrastructure Perl Toolkit

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.

Referencias:

tags: , , ,
Escrito en Virtualización por Ignacio Vazquez

Follow comments via the RSS Feed | Deja un comentario | Trackback URL

1 Comment to "Aproximación al VMware Infrastructure Perl Toolkit"

  1. 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 […]

Leave Your Comment

 
desdelaconsola.es