En la entrega anterior de nuestra serie sobre VMware vRealize Orchestrator, vimos los componentes de los flujos de trabajo de vRealize Orchestrator. La interfaz de arrastrar y soltar que utilizamos es una herramienta de diseño de interfaz gráfica de usuario de front-end que utiliza JavaScript para llamar a las interfaces de programación de aplicaciones que expone VMware vRealize Orchestrator.
VMware vRealize Orchestrator
Si examina algunos de los flujos de trabajo más complejos en el diseño, verá que constan de varios elementos de acción y decisiones basados en las entradas de los elementos de flujo de trabajo anteriores. La base de todos estos flujos de trabajo es el código JavaScript. Al igual que con la mayoría de las plataformas de Orchestrator, hay varias formas de crear la misma salida preferida. Si lo desea, un desarrollador puede añadir una gran cantidad de funcionalidad a un solo elemento scriptable en lugar de utilizar varios elementos de flujo de trabajo; hacerlo puede ayudar a la simplicidad y la compartimentación. Por el contrario, debe evitarse el código espagueti con enormes trozos de código. Se deja al mejor criterio del cliente decidir qué es lo que mejor encaja y cuándo.
Para ver todas las máquinas dentro del VirtualCenter (VC), comience por crear un nuevo flujo de trabajo y una carpeta si aún no lo ha hecho. Arrastre un elemento «scriptable task» entre los puestos de inicio y fin. A continuación, haga clic en la ventana de scripting y pegue el siguiente código directamente en la ventana:
var vCenterServers = VcPlugin.allSdkConnections;
var poweredOnVMs = new Array();
var count;
var allVMs = vCenterServers[0].getAllVirtualMachines(null, null);
System.log(«Num VMs = » + allVMs.length);
for (count = 0; count < allVMs.length; count++) {
if (allVMs[count].runtime.powerState.value === "poweredOn") {
System.log(allVMs[count].name + "\t" + allVMs[count].runtime.powerState.value + "\t" + (allVMs[count].summary.storage.committed/1024/1024).toFixed(2) + " GB");
}
}
Esto nos permite identificar las máquinas que están encendidas, y muestra cuánto almacenamiento consume cada VM en gigabytes. Aunque utilizar varios elementos del flujo de trabajo a través de la función de arrastrar y soltar habría sido igual de útil, el uso de este código autónomo simplifica las cosas al eliminar la necesidad de ordenar las entradas y salidas de la función de arrastrar y soltar.
Una vez que haya introducido el código mostrado arriba, complételo utilizando el botón de cierre en la parte inferior de la ventana. Haga clic en «Guardar» y «Guardado con éxito» debería aparecer en verde en la parte inferior de la pantalla. Este código necesitará conectarse al VC, por lo que tendrá que seleccionar el vCenter apropiado en la entrada.
Cuando ejecute el código seleccionando «Run» o el botón de reproducción en la parte superior de la pantalla, verá una lista de las VMs encendidas y el almacenamiento utilizado seleccionando la pestaña «Logs». Como se muestra en la Figura A, esto proporcionará detalles sobre todas las VMs conectadas a esa VM individual.
Como puedes ver, utiliza un bucle for básico de JavaScript para moverse a través de todas las VMs y, si la VM está encendida, pide valores para el uso del almacén de datos.
A continuación, introduzca el siguiente código para dar salida a los resultados a la salida del registro:
System.log(«Num VMs = » + allVMs.length)
Guarde el flujo de trabajo y ejecútelo.
Por sí mismo, este fragmento de código hace algo medianamente útil al permitirle pasar datos entre elementos adicionales de scripting según sea necesario. Para utilizar esta funcionalidad, debes «exponer» las variables. Sin embargo, hacerlo no es tan sencillo como parece.
Para entender completamente cómo funciona VMware vRealize Orchestrator, debe comprender que los parámetros del flujo de trabajo, la entrada y la salida son cosas diferentes. Esencialmente, los parámetros del flujo de trabajo son variables disponibles para todo el flujo de trabajo y se utilizan para transferir datos entre los elementos del flujo de trabajo. Podrían considerarse variables globales.
Las entradas provienen del usuario, de un servicio externo o de otro objeto del flujo de trabajo. Por ejemplo, puede pasar datos de un script de PowerShell al elemento del flujo de trabajo con una entrada. Esta característica facilita el manejo de múltiples fuentes de datos. Como su nombre indica, las salidas se utilizan para empujar y extraer datos a otros elementos del flujo de trabajo. Con las salidas, se puede pasar cualquier tipo de variable o matriz soportada según sea necesario.
Otra característica de vRO que aún no hemos discutido es el control de cambios. Cuando se familiariza con la construcción de flujos de trabajo más avanzados de vRealize Orchestrator, poder revertir a versiones anteriores es muy útil. Si necesita revisar o revertir un flujo de trabajo, esto se hace haciendo clic en el hipervínculo «Mostrar historial de versiones» en la página general. También puede ver la diferencia entre la versión actual y la versión guardada, si así lo desea.
Hay mucho que se puede hacer con VMware vRealize Orchestrator, pero primero recomendaría aprender JavaScript, ya que casi todo en vRO utiliza JavaScript. Tomará algo de tiempo ajustarse a desarrollar flujos de trabajo exitosos y útiles, pero una vez que haya dominado los flujos de trabajo de vRealize Orchestrator y los scripts, hará que gran parte del trabajo manual sea tan simple como hacer clic y ejecutar.