Utilizando vCenter Orchestrator (vCO) para obtener datos
vCenter Orchestrator es la herramienta de Orquestación de Infraestructura de VMware. Pero su potencia y versatilidad nos permite utilizarla para obtener datos de la situación actual de nuestra plataforma virtual.
Creando listados con vCO
En Wetcom descubrimos que existen muchas ocasiones en las que es muy conveniente obtener datos directamente desde vCenter Orchestrator para ser almacenados en una CMDB o para ver el estado actual de algunos componentes de nuestra infraestructura virtual.
Para lograrlo, desarrollamos un pequeño Framework que consta de un servicio web que se modifica según los requerimientos, una librería de comunicación con vCO y una metodología para la creación de workflows de consulta.
Creando los workflows
Los workflows de consulta incluyen el código para que obtengan los datos que necesitamos pero los presenta en un formato predefinido de XML. El objetivo es devolver listados de objetos de Infraestructura (Vms, Datastores, Hosts, Cluesters, etc) dentro de una estructura genérica.
Librería de comunicación
Creamos una pequeña librería de comunicación que entiende el formato XML genérico de los workflows de consulta y como transformarlos en objetos (también genéricos) que puedan ser utilizados por cualquier aplicación.
La librería también incluye una abstracción para hacer más simple la llamada remota a workflows de vCO así como también consultar su estado y obtener el resultado una vez finalizada la ejecución de los mismos.
Servicio Web
El Servicio Web es propio de cada escenario y su objetivo es presentar de forma directa los métodos de consulta correspondientes.
Tiene la capacidad de admitir “requests” tanto utilizando GET, POST, SOAP y JSON por lo que puede ser utilizado virtualmente desde cualquier sistema y con cualquier lenguaje.
Demostración
En el siguiente video se puede ver un ejemplo de consulta directa a vCO para obtener datos de Hosts, Datastores y Máquinas Virtuales de nuestra Infraestructura VMware.
La página HTML es estática y utiliza Javascript y JSON para consumir el Servicio Web.