Las instrucciones se ejecutan rápido o lento, una a la vez o muchas al mismo tiempo, de forma síncrona o asíncrona
Anteriormente en este blog se ha comentado que la automatización es clave cuando se requiere gestionar más de un servicio en la nube o cuando las tareas se vuelven reiterativas. En esta oportunidad hablaré de Azure PowerShell pero con su otra cara llamada «RunBook».
Hablando de Azure Automation
Azure Automation es un servicio de la nube de Microsoft Azure que permite programar objetos llamados «RunBooks» que habilitan la administración de otros servicios con scripting de PowerShell, todo de manera automatizada.
Los RunBooks son objetos que permiten la ejecución de tareas dentro de Azure Automation. Estas tareas van desde el despliegue de una máquina virtual o llevar a cabo tareas entre distintas nubes coordinando más RunBooks.
Las maneras de trabajar con Azure Automation son dos:
- Desde el portal de Microsoft Azure (http://portal.azure.com).
- Desde Windows PowerShell.
Azure Automation – Desde el portal de Azure
Recomendado para tareas sencillas, no elaboradas. Cuando la gestión de los servicios no es recurrente ni compleja, es un buen escenario hacerlo desde el portal web.
Azure Automation – Desde el Windows PowerShell
Con Windows PowerShell instalando un módulo de ARM es posible administrar servicios en la nube de Microsoft Azure. Recomendado por la flexibilidad y alcance más potente, más que el portal web. Cabe destacar el uso de PowerShell con Azure Cloud Shell desde el navegador.
Componentes necesarios dentro de Azure Automation
Subscription (Suscripción)
Las suscripciones administran los servicios de Microsoft Azure desde el punto de vista de la facturación.
Resource Group (Grupos de Recursos)
Son contenedores lógicos de recursos en la nube, los asocia unos a los otros y facilita su gestión.
Automation Account (Cuenta de Automatización)
Similar a un grupo de recursos, pero solo asocia y coordina recursos dentro de Azure Automation.
RunBook (Ejecución de Scripts)
Los RunBooks son scripts de PowerShell (tal cual). «Sets» de instrucciones para ser ejecutadas dentro de Azure Automation.
Asset (Datos de valor)
Se refiere a datos persistentes de almacenamiento como variables, credenciales, certificados y schedules (programación de ejecución por tiempo).
Los tipos de Automation Assets son 3, y tienen funciones específicas:
- Schedule: Desencadenan RunBooks en fechas y tiempo específicos, son recurrentes y se asignan a un solo RunBook.
- Variable: Variables como en cualquier otro lenguaje de programación, almacenan en Azure Automation, pueden ser encriptadas y existen de diferentes tipos (string, boolean, date time, integer, etc.).
- Credential: Un tipo de variable especial que almacena credenciales de autenticación como un login (nombre de usuario y contraseña).
Así como cualquier otro servicio de Microsoft Azure, una cuenta de Azure Automation se requiere una suscripción, un grupo de recursos.
Decidiendo cuando usar Azure Automation
Es conveniente cuando… | No es conveniente cuando… |
|
|
Tipos de RunBooks
Los RunBooks no son de un solo tipo, existen diferentes y ellos son los siguientes:
- Graphical: Basado en PowerShell, creado y editado completamente con un editor gráfico en el portal de Azure.
- Graphical PowerShell Workflow: Basado en PowerShell Workflow, creado y editado completamente con un editor gráfico en el portal de Azure.
- PowerShell: Un script de PowerShell como cualquier otro.
- PowerShell Workflow: Basado en PowerShell Workflow.
Ahora que ya tenemos claros los conceptos de «Azure Automation» y «RunBooks» veamos de manera práctica que podemos hacer desde Windows PowerShell y el portal de Azure:
Todo el código utilizado en el video esta aquí abajo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 1) Para ver las subscripciones existentes Get-AzureRmSubscription # 2) Para seleccionar una subscripción a trabajar select-azurermsubscription -subscriptionname 'BizSpark' # 3) Para crear nuevo grupo de recursos dentro de la subscripción new-azurermresourcegroup -name 'automationaccount-rg-2' -location 'South Central US' # 4) Para crear cuenta de azure Automation Account new-azurermautomationaccount -name 'my-second-aa-account' -resourcegroupname 'automationaccount-rg-2' -location 'South Central US' #5) Para ver todas las acuentas de azure automation en la subscripción get-azurermautomationaccount |
1 2 3 4 5 6 7 8 9 10 11 |
#1) Definiendo variables en PowerShell $therg = 'automationaccount-rg-2' $theaa = 'my-second-aa-account' $therb = 'my-second-runbook' $thepath = 'E:\Dropbox\All my things\RunBook.ps1' #2) Para crear el RunBook New-AzureRmAutomationRunBook -Name $therb -Description 'This is a RunBook from PowerShell' -Type PowerShell -ResourceGroupName $therg -AutomationAccountName $theaa # 3) Para agregar código al RunBook (Si existe el RunBook, se reemplaza su código por el nuevo) Import-AzureRmAutomationRunBook -Path $thepath -Name $therb -Type PowerShell -ResourceGroupName $therg -AutomationAccountName $theaa -Force |
1 2 3 4 5 6 7 8 9 10 11 |
#1) Para publicar el RunBook Publish-AzureRmAutomationRunBook -Name $therb -ResourceGroupName $therg -AutomationAccountName $theaa #2) Para iniciar el RunBook Start-AzureRmAutomationRunBook -Name $therb -ResourceGroupName $therg -AutomationAccountName $theaa #3) Para generar una fecha de ejecución 'Schedule' New-AzureRmAutomationSchedule -Name 'Every second Monday' -StartTime $(get-date).AddHours(3) -DayOfWeek Monday -DayOfWeekOccurrence Second -MonthInterval 1 -ResourceGroupName $therg -AutomationAccountName $theaa #4) Para asociar el RunBook con la fecha de ejecución Register-AzureRmAutomationScheduledRunBook -RunBookName $therb -ScheduleName 'Every second Monday' -ResourceGroupName $therg -AutomationAccountName $theaa |
Sígueme en Twitter @vmorenoz
¿Te gustó este artículo? Únete a Facebook en MicrosoftLand