LinkedIn Google+

En este artículo vamos a ver qué es un Runbook, una de las piezas fundamentales de System Center 2012 – Orchestrator, lo que nos ayudará para crear actividades de automatización complejas.

Pero antes de poder empezar a crear nuestros runbook creo que es necesario aclarar algunos conceptos básicos acerca de los runbooks y qué podemos y no podemos hacer con ellos.

¿Qué es un runbook?

Un runbook es un conjunto de instrucciones o pasos que deben ser dados para llevar a cabo una tarea o proceso automatizado. A cada uno de estos pasos lo llamaremos actividad. Además la ejecución de una u otra actividad se puede realizar en base a un control de flujo.

En general, un runbook, como cualquier otro objeto, posee una serie de propiedades que nos permiten modificar nuestro runbook. Entre estas propiedades, a parte de las clásicas de nombre y descripción, hay algunas particularmente interesantes que debemos destacar:

  • Schedule, que nos permite programar la ejecución de un runbook en determinados intervalos de tiempo.
  • Serverscon la que podemos ajustar qué servidores van a ser los encargados de ejecutar nuestro runbook.
  • Logging, que nos permite controlar la información que se almacena en la base de datos.
  • Event Notification, que controla la activación de la notificación de eventos.
  • Job Concurrency, donde podemos ajustar el numero máximo de instancias de nuestro runbook que pueden ser ejecutadas de forma simultánea.
  • Returned data, donde configuraremos los datos devueltos por nuestro runbook.

Pero todo esto es harina de otro costal, de momento vamos con los conceptos algo más básicos.

Actividades

Tal y como decía antes, una actividad es cada uno de los pasos que realiza un runbook para realizar un proceso o tarea automatizada. Básicamente, una actividad se encarga de:

  1. Acceder a datos publicados.
  2. Realizar alguna acción.
  3. Publicar nuevos datos.

Dentro de las actividades encontramos distintos tipos:

  • Estándar, son actividades ya definidas con la instalación de Orchestrator y que nos ofrecen una serie de funcionalidades para crear runbooks realmente potentes. Los grupos de actividades estándar que encontramos en Orchestrator son:
Colección de actividadesDescripción
EmailEnvío de notificaciones por email.
Gestión de ficherosGestiona la interacción con ficheros como la copia o el movimiento.
Actividades de monitorizaciónReacciona a eventos del sistema.
NotificaciónOtros tipos de sistemas de notificaciones como Syslog o pop-ups.
Control de RunbookGestiona la lógica del runbook.
Programación de actividadesPrograma actividades en el tiempo.
Actividades de sistemaEjecuta comandos del sistema como lanzar un programa.
Gestión de ficheros de textoManipula ficheros de texto.
UtilidadesTrabaja y manipula datos de un flujo de trabajo.
  • De monitorización, encargadas de vigilar estados o eventos que se producen fuera del runbook para disparar otras actividades dentro del runbook.
  • Personalizadas, Orchestrator nos ofrece la posibilidad de extender el conjunto de actividades disponibles mediante el uso de dos mecanismos:
    • Integration Packs, que como ya hemos comentado son extensiones proporcionadas por los fabricantes para la conexión de Orchestrator con otros productos
    • Orchestrator Integration Toolkit, que es un conjunto de herramientas que nos permite realizar nuestras propias actividades.

Hemos visto que todas las actividades acceden a datos publicados y publican datos ellas mismas. Por defecto, estos datos son publicados como múltiples salidas individuales, de esta forma si una actividad se encarga de leer el contenido de un fichero de texto, cada una de las líneas que componen el fichero será una salida única que será procesada individualmente por la siguiente actividad. Sin embargo, este comportamiento por defecto puede ser variado, de forma que los datos sean publicados como:

  • Datos separados por saltos de líneas.
  • Datos separados por un carácter personalizado, un “;” por ejemplo.
  • Datos en formato CSV.

Tened en cuenta que esta opción afecta solo a la publicación de datos de la actividad sobre la que se modifica y no a múltiples actividades del mismo runbook.

Control del flujo de trabajo

Como comentamos anteriormente, el control de flujo lo usaremos para modificar la secuencia en la que se ejecutan las actividades. Gracias al control de flujo podremos crear runbooks complejos que nos permitan realizar procesamiento de datos y trabajos avanzados.

Existen tres componentes fundamentales a la hora de hablar del control de un flujo de trabajo:

  • Starting Point o Punto de comienzo.
  • Smart Links o enlaces inteligentes.
  • Embedded loops o simplemente bucles.

Starting Points

El starting point es la primera actividad que se ejecuta de un runbook. Debemos tener en cuenta que la ejecución de actividades dentro de un runbook es secuencial y que por lo tanto una actividad no comienza hasta que su predecesora ha terminado su ejecución.

Otro punto que debemos saber es que un runbook solo puede tener un único starting point.

Si el starting point es una actividad estándar, entonces el runbook es ejecutado inmediatamente y se intenta completar su ejecución entera. Sin embargo si hemos elegido una actividad de monitorización como comienzo de runbook, el monitor se cargará y se esperará a que se cumpla con la condición de disparo, momento que en el que se creará una instancia del runbook y comenzará su ejecución.

Por ejemplo, si decidimos que nuestro runbook vigile si se modifica un fichero de texto en particular, en el momento en el que se indique que debe comenzar el runbook el monitor se quedará vigilando el fichero de texto que hemos indicado. En el momento en el que se modifique dicho fichero, se instanciará el runbook y ejecutará la actividad que le hayamos indicado (mandar una alerta, por ejemplo).

Smart Links

Un Smart link es la conexión que establecemos entre dos actividades y son las encargadas de invocar una actividad cuando la predecesora ha finalizado, así como filtrar los datos que se envían de una actividad a otra.

Los Smart links son el mecanismo que usaremos para implementar la ejecución condicional de actividades. Realmente, y siendo precisos, es el Smart link criteria el que realiza las veces de estructura “if-else” en lo que a actividades se refiere.

El tipo de criterio depende del tipo de datos devuelto por la actividad predecesora, de esta forma (y por no entrar en mucho detalle) tendremos los siguientes tipos de datos:

  • Estado de la actividad (successfailed o warning).
  • Valores binarios (true false).
  • Valores de texto (podemos buscar dentro de cadenas).
  • Valores numéricos.

Veremos esto en más detalle con un ejemplo en un próximo artículo.

Embedded Loops

En generar un bucle es repetir una operación mientras o hasta (dependiendo del tipo de bucle) que se satisface una condición.

En el caso de un runbook, al usar bucles, podemos crear reintentos automáticos de ejecución de una actividad en caso de que esta falle. Estos reintentos se mantendrán hasta que se satisfaga el criterio de salida del bucle.

Como veis, antes de poder ponernos manos a la obra con un runbook, es necesario conocer algunos conceptos básicos. No me he querido extender demasiado con la teoría, porque creo que todo esto quedará mucho más claro con un ejemplo que veremos en un próximo artículo…

Artículo publicado originalmente por Curso Hispano.
Artículo anterior

CÓMO CREAR UN RUNBOOK

Artículo siguiente

TECNOLOGÍA EN LA EMPRESA: EFICIENCIA DE COSTES

Sin Comentarios

Responder

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *