Usando PowerShell con Azure Automation

¿Qué es Azure Automation?

Azure Automation permite automatizar tareas de administración en la nube que son realizadas con frecuencia (y que requieren demasiado tiempo), ya sean locales o en la nube. Esto genera un valor adicional ya que se enfoca el esfuerzo en agregar valor al servicio y no a realizar tareas monótonas.

Éstas tareas son ejecutadas por medio de flujos de trabajo con Windows PowerShell denominados Runbooks. Los Runbooks permiten controlar la creación, implementación, supervisión y el mantenimiento de los recursos en Azure y aplicaciones externas. También permiten controlar la ejecución de los mismos, dejando a disposición la posibilidad de ejecutar los Runbooks de forma programada.

A su vez, los Runbooks funcionan con Web Apps en el servicio Azure App Service, con maquinas virtuales, Azure Storage y Azure SQL Database, por nombrar algunos de los servicios de Azure. También se pueden utilizar con servicios externos de APIs públicos. Y por si todo lo anterior fuese poco, los Runbooks pueden integrarse con deploys de PowerShell DSC, por lo que las posibilidades se extienden de manera exponencial!

¿Qué pueden automatizar los runbooks?

Los Runbooks de Azure Automation se basan en Windows PowerShell o en el flujo de trabajo de PowerShell, o sea que hacen todo lo que puede hacer PowerShell básicamente. Si una aplicación o servicio tiene una API, un Runbook puede trabajar con ella. Si tiene un módulo de PowerShell para la aplicación, puede cargarlo en Azure Automation e incluir estos cmdlets en un Runbook. Los runbooks se ejecutan en Azure y pueden acceder a los recursos en la nube o los recursos externos a los que se puede acceder desde la nube. Con Hybrid Runbook Worker, los Runbooks pueden ejecutarse de forma local para poder administrar los recursos locales.

Galería de Runbooks

Existe un repositorio de Runbooks generado por la comunidad que se encuentra disponible en la Centro de scripts de Technet, en el siguiente enlace: Galería de Runbooks.

Primer Runbook

Desde el portal de Azure, vamos a New, buscamos automation, luego seleccionamos Automation y Create:

Azure Automation

Completamos los campos, con los valores que nos indican y seleccionamos Create, para este ejemplo utilicé:

Azure Automation parameters

Luego de haber creado la cuenta, vamos a ir a nuestros recurso y vamos a seleccionar la cuenta creada hace instantes. Posterior a acceder a la configuración de la cuenta de automatización, seleccionamos Runbooks para crear uno nuevo:

New runbook

Para este primer ejemplo vamos a crear un Runbook muy simple. Básicamente lo que va a hacer al ejecutarse es imprimir como salida un “ Hola Mundo” . Para llevar a cabo lo anterior, seleccionamos un nombre y marcamos el Runbook type como PowerShell workflow:

PowerShell workflow

Posteriormente ingresamos el siguiente código, para que retorne el string definido:

workflow HelloWorld {
      Write-Output "Hello world!"
  }

Y con lo anterior, vamos a guardar nuestro Runbook y como último seleccionamos Start para iniciar la ejecución del mismo. Seleccionando el tile Output podemos observar lo devuelto por el script, el famoso “ Hola mundo” :

Runbook output

Para la siguiente entrega vamos a ver como programar la ejecución, así como tareas más complejas con nuestros recursos en Azure.

Happy scripting!

Comments