LinkedIn Google+

Introducción

Después de haber revisado un poco la teoría de qué es un runbook ha llegado el momento de ponerse manos a la obra y ver cómo crear un runbook.

Antes que nada me gustaría comentaros que el ejemplo que vamos a ver aquí no es una invención mía, sino que está sacado de la guía oficial disponible en TechNet llamada ‘Using Runbooks in System Center 2012 – Orchestrator‘. En este caso mi aportación será, aparte de la traducción, comentaros los detalles o problemas que me he encontrado a la hora probar este ejemplo.

Se trata de un ejemplo bastante sencillo, pero que presenta algunos conceptos interesantes como la monitorización de ficheros, la lectura y escritura de ficheros de texto o la publicación y suscripción de datos.

Cómo crear un runbook

Lo primero y más importante que necesitamos para crear un runbook es evidentemente usar la herramienta apropiada, el Runbook Designer.

Dentro del panel de conexiones, situado a la derecha del Runbook Designer encontraréis un nodo llamado Runbooks, justo debajo del servidor de runbooks al que estéis conectados.

Si hacemos clic derecho sobre el nodo runbooks nos aparecerá un menú emergente en el que tendremos la opción de seleccionar “New” donde eligiremos Runbook, con lo que se nos agregará una nueva pestaña, con el título New Runbook, en el panel central de edición.

Crear Runbook_1

Una cosa que debemos tener en cuenta es que cuando trabajamos con un runbook estamos trabajando realmente contra una base de datos, por lo que no debemos preocuparnos en guardar constantemente nuestro runbook. Con lo que si debemos estar atentos es con asegurarnos de proteger (Check In) y desproteger (Check Out) nuestro runbook antes de poder trabajar con él. No es que resulte especialmente engorroso ya que Designer nos preguntará si queremos desproteger un runbook antes de editarlo, pero es algo que no está de más saber. crear runbook 2

Monitorizar ficheros

La primera de las actividades que vamos a agregar a nuestro runbook va a ser la encargada de monitorizar los ficheros de un directorio concreto. En general, las actividades de monitorización se encargan de vigilar el estado de algún elemento (depende del monitor concreto) y son disparadas en el momento en el que se cumple la condición que programemos. Para nuestro ejemplo vamos a monitorizar el directorio C:\QoSIT\Pruebas de forma que cualquier fichero de texto con extensión .txt será leído, copiado al directorio C:\QoSIT\Copia y su contenido agregado a un fichero llamado masterlog.txt

Debemos usar la actividad Monitor File que se encuentra dentro del grupo de actividades File Management

crear runbook 3

Arrastramos la actividad Monitor File al área de trabajo, hacemos clic derecho sobre la actividad y seleccionamos a opción Properties para editar las propiedades de la actividad.

El campo In Folder indica el directorio donde el runbook debe quedarse observando para detectar los cambios, que configuraremos posteriormente, en los ficheros que contenga dicho directorio. En mi caso he elegido para la prueba el directorio c:\QoSIT\Pruebas.

crear runbook 4

La selección de ficheros que vamos a monitorizar la debemos realizar mediante el filtrado de ficheros, en la misma ventana de propiedades de la actividad. Para agregar un filtro simplemente hacemos clic en Add… seleccionamos la propiedad de sobre la que queremos filtrar, la relación y el valor, y listo. En nuestro caso elegiremos un filtrado sobre el nombre del fichero y mediante una expresión regular seleccionaremos cualquier fichero txt, tal y como podéis ver en la siguiente imagen.

crear runbook 5

Quedando la sección Details como veis en la siguiente captura: crear runbook 6

El siguiente paso será configurar el disparador o Trigger que se encargará de indicar al runbook server que debe crear una instancia de este runbook y ejecutarla. En nuestro caso el trigger resulta bastante sencillo ya que sólo trabajaremos sobre ficheros que se creen en el directorio c:\QoSIT\pruebas crear runbook 7

Con esto hemos terminado de configurar la actividad Monitor File, toca ahora copiar el fichero de origen.

Copiar y leer ficheros

Como he comentado antes, parte de nuestro ejemplo consiste en copiar el fichero que creemos en el directorio que estamos monitorizando a un directorio distinto donde trabajaremos con él, leyendo su contenido, y luego lo eliminaremos. Las actividades encargadas de realizar estas tareas se llama Copy File que forma parte de la categoría File Management y Read Line que forma parte de la categoría de actividades Text File Management.

crear runbook 8 Agregamos estas dos actividades, Read Line Copy File, arrastrándolas a nuestro runbook. Antes de proceder a configurar las dos actividades debemos enlazar la actividad Monitor File con ambas actividades. Este paso resulta básico e imprescindible que se realice antes de configurar las propiedades de las actividades, ya que esta será la forma en la que podremos acceder a los datos publicados de la actividad Monitor File desde las actividades Read LineCopy File.

Enlazar las actividades es sencillo, simplemente situaros encima de la actividad origen, en este caso Monitor File, pinchad en la pequeña flecha que aparece a la derecha del icono de la actividad y arrastrad la línea hasta la actividad con la que queráis enlazar. Este paso debéis repetirlo para las dos actividades, Read Line Copy File.

Configurar la actividad Copy File

La tarea es sencilla, copiar un fichero de un origen a un destino. El origen lo conocemos, es C:\QoSIT\pruebas. El destino también es conocido, C:\QoSIT\Copia. Pero, ¿y el nombre del fichero? ¿cómo lo averiguamos?

Aquí es donde entra en juego la suscripción de datos. Tenemos una actividad que sabemos que tiene el dato que necesitamos. Pues preguntémosle. La suscripción de datos no es más que obtener los datos que han sido publicados previamente por otras actividades. Para ello, es fundamental que las actividades hayan sido enlazadas antes de intentar realizar la suscripción de datos. Veamos cómo se hace.

Accedemos a las propiedades de la actividad Copy File. Una vez que tengamos la ventana de propiedades de la actividad hacemos clic derecho en el campo File, donde nos aparecerá un menú contextual. Seleccionamos la opción Subscribe y dentro de esta opción elegiremos Published data crear runbook 9

En ese momento nos aparecerá la ventana de suscripción de datos, donde elegiremos la actividad Monitor File y el atributo Name and path of the file. Recordemos de nuevo el motivo de esto, Monitor File es la actividad que sabe cuál será el nombre del fichero que vamos a copiar, por lo tanto es desde donde tenemos que obtener la información. crear runbook 10

Una vez seleccionados los datos publicados a los que nos queremos suscribir y establecido el directorio donde queremos copiar el fichero en cuestión, las propiedades de nuestra actividad Copy File deben quedar algo parecido a esto. crear runbook 12

Repetiremos los mismos pasos para el caso de la actividad Read Line. En este caso, esta actividad como habréis podido imaginar se encarga de leer lineas de un fichero. Como se puede dar el caso de que no queramos leer todas las líneas de un fichero, la actividad nos da la opción de especificar cuantas lineas queremos leer mediante el campo Lines. En nuestro caso lo queremos leer todo, por lo que indicaremos 1-ENDPor lo demás el resto de la configuración es exactamente igual a lo que ya hemos hecho hasta ahora. crear runbook 11

Insertar líneas en un fichero

El siguiente paso, como comentábamos en la primera parte de este artículo, consistirá en agregar el contenido del fichero que hemos leído a un fichero de log maestro que llamaremos MasterLog.txt. La actividad que lleva a cabo esta tarea se llama Append Line (que nombre más raro, no? :)), y de nuevo haremos uso de la suscripción a datos publicados por otras actividades para decirle a la actividad Append Line lo que debe escribir. En este caso no me voy a enrollar mucho porque todo lo que hay que hacer ya lo hemos hecho en alguno de los pasos anteriores…

Sólo os pongo la captura de lo que tenéis que seleccionar para la suscripción de datos…

crear runbook 13

Y la captura de cómo quedarían finalmente las propiedades de la actividad Append Line:

crear runbook 14

No voy a ser “malo” del todo… Recordad que antes de poder suscribirse a datos publicados desde otra actividad, hay que enlazar las actividades.

Sincronizando actividades

Una situación que debemos gestionar es la sincronía de las actividades, es decir, que múltiples actividades que se ejecutan en ramas paralelas terminen su ejecución al mismo tiempo antes de proceder con otra actividad. En nuestro caso, el punto “peligroso” está en que una vez que hemos copiado el contenido del fichero en cuestión al log maestro, queremos eliminar el fichero que reside en el directorio C:\QoSIT\Copia, pero ¿qué ocurriría si lo borramos antes de que terminemos de insertar sus datos en el log maestro?

Para evitar este tipo de situaciones existe una actividad que se encarga precisamente de esto, de esperar a que todas las actividades que la enlazan hayan finalizado antes de continuar con la siguiente. Esta actividad se llama Junction y está disponible dentro del conjunto de actividades Runbook Control.

crear runbook 15

Un par de cosas importantes a tener en cuenta:

  1. Por defecto, Junction no publica datos.
  2. Podemos publicar datos que hayan publicado previamente cualesquiera de las actividades de las ramas que enlazan con Junction, pero solo podemos publicar los datos de una única actividad, el resto de datos no son visibles.

Dicho esto, solo queda arrastrar la actividad a nuestro runbook y configurarla:

crear runbook 16

Seleccionamos la actividad cuyos datos queremos publicar:

crear runbook 17

Y la actividad queda como sigue:

 crear runbook 18

Borrando ficheros

Ya solo queda un paso que dar, que es el borrado de la copia del fichero que hemos usado para leer e insertar los datos en el log maestro. Esto sigue siendo más de lo mismo, por lo que este paso os lo dejo a vosotros, pero si alguien tiene alguna duda, que lo ponga simplemente en los comentarios y la responderé encantado

Vuestro Runbook debería parecerse algo a este:

 crear runbook 19

Comprobar que todo funciona

Siempre lo he dicho, y esta vez no es una excepción, que no me gustan “los actos de fe” por lo que hay que comprobar que todo funciona correctamente.

En otros artículos ya hemos visto cómo lanzar el Runbook Checker, simplemente es hacer clic sobre el botón que tiene ese mismo nombre situado en la parte superior del Runbook Designer. Una vez que hayamos hecho esto, os debe aparecer algo parecido a la siguiente imagen: crear runbook 20

Para probar nuestro runbook lo que haremos será:

  1. Iniciar nuestro runbook.
  2. Abrir el notepad y escribir algunas lineas aleatorias.
  3. Guardar el fichero, con el nombre que queramos, en el directorio que estamos monitorizando. En mi caso c:\QoSIT\pruebas
  4. Esperar unos segundos a que el runbook haga su trabajo.
  5. Comprobar que todo ha ido bien.

Este runbook quizá no resulte de una utilidad extrema en entornos de operación reales, pero nos viene muy bien para explicar los procesos que debemos seguir para crear nuestros runbooks ajustados a nuestras propias necesidades.

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

No hay más artículos.

Artículo siguiente

¿QUÉ ES UN RUNBOOK?

Sin Comentarios

Responder

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