Azure Backup con PowerShell

Azure ofrece una extensa variedad de productos y servicios, que están ahí, para usarlos y conocerlos, probar si realmente es lo que estamos buscando para resolver nuestras necesidades, o no. Lo divertido es eso, evaluar las funcionalidades. Hoy quiero hablar de Azure Backup con PowerShell (como no podía ser de otra manera), ya que el backup off-site es, en algunos escenarios, un requerimiento fundamental.

Requisitos

Para poder comenzar a trabajar con Azure Backup es necesario revisar que la versión de Windows PowerShell y de Azure PowerShell sea la correcta (que sea la mínima aceptable) para poder realizar la configuración que vamos a ver mas adelante.

PowerShell

Para verificar la versión de PowerShell, vamos a ejecutar en nuestra consola:

$PSVersionTable

Obteniendo como resultado, algo como lo siguiente:

Azure Backup - Versión de PowerShell

El valor de PSVersion tiene que ser mayor a 3.0. En caso de que sea una versión anterior, o quieran actualizar a la última versión a la fecha, les comparto el enlace para descargarlo: WMF 5.0

Azure

Pueden ingresar al siguiente enlace para poder crear una suscripción trial de Azure, para los que no tengan acceso.

Ahora nos resta tener instalado el módulo Azure PowerShell en el equipo. La versión mínima es la 1.0, se puede acceder al mismo desde éste enlace.

También ejecutando:

Install-AzureRM

Acceder a la suscripción y primeros pasos

Ejecutamos e ingresamos las credenciales que están asociadas a la suscripción que vamos a utilizar:

Login-AzureRmAccount

Credenciales para Azure

En caso de tener varias suscripciones asociadas a las credenciales ingresadas, vamos a recolectar los datos de la suscripción que vamos a utilizar ejecutando:

Get-AzureRmSubscription

Prestarle atención al campo SubscriptionName que es el que vamos a usar para identificar la suscripción en los siguientes cmdlets, en mi ejemplo yo modifiqué el valor por el nombre de mi suscripción:

$Subscription = "Visual Studio Enterprise con MSDN"
Select-AzureRmSubscription -SubscriptionName $Subscription -Current

(Ejecutar el bloque anterior solamente si tenemos varias suscripciones asociadas a las mismas credenciales)

Register-AzureRmResourceProvider -ProviderNamespace "Microsoft.Backup"
New-AzureRmResourceGroup –Name “AzureBackup” -Location "West US"
$BackupVault = New-AzureRmBackupVault -ResourceGroupName “AzureBackup” -Name “AzureBackupVault” -Region “West US” -Storage GeoRedundant

Instalar el Azure Backup agent

Después de haber ejecutado el comando anterior, vamos descargar el agente desde el siguiente enlace y luego de que finalice la descarga ejecutar como administrador:

.\MARSAgentInstaller.exe /q

O simplemente ejecutarlo y acceder al entorno gráfico. La instalación basicamente es siguiente, siguiente, etc.

Registrarse contra el servicio de Azure Backup

$CredsPath = 'C:\'
$CredsFilename = Get-AzureRMBackupVaultCredentials -Vault $BackupVault -TargetLocation $CredsPath
$CredsFilename

Registrar la maquina contra el vault, usando el cmdlet Start-OBRegistration Import-Module MSOnlineBackup

$Cred = $CredsPath + $CredsFilename
Start-OBRegistration -VaultCredentials $Cred -Confirm:$false

Configuración de Networking

Set-OBMachineSetting -NoProxy
Set-OBMachineSetting -NoThrottle

Comandos ejecutados en PowerShell

Seguridad

Para otorgar una mayor medida de seguridad, se debe definir una passphrase, que realiza la encriptación de los datos, para ello debemos ejecutar:

ConvertTo-SecureString -String "P@ssw0rd.S3cur3.2016" -AsPlainText -Force | Set-OBMachineSetting

Respaldo

Todos los backups están governados por una política, que consta de tres partes fundamentales:

BackUp schedule – Se define el período en el que se ejecuta la sincronización Retention schedule – Define el tiempo que se va a mantener un punto de restauración File inclusion/exclusion specification – Determina que archivos (o carpetas) se van a respaldar

Para crear la política que vamos a utilizar, ejecutamos:

$NewPolicy = New-OBPolicy

Schedule

$Sched = New-OBSchedule -DaysofWeek Friday, Sunday -TimesofDay 21:00

Se pueden configurar varios días de la semana, o todos. En cambio, solamente podemos definir hasta 3 horarios diferentes para que se ejecute la sincronización. En este ejemplo, dejamos que se ejecute los Viernes y Domingos a las 21:00hs.

Para que lo anterior funcione, debemos asociar el schedule con una policy:

Set-OBSchedule -Policy $NewPolicy -Schedule $Sched

Retention policy

Como en la parte anterior, ahora nos toca definir el tiempo de retención de los puntos de restauración, para este ejemplo vamos a dejar 5 puntos y vamos a asociar la configuración a la política que ya tenemos creada para este fin:

$RetentionPolicy = New-OBRetentionPolicy -RetentionDays 5
Set-OBRetentionPolicy -Policy $NewPolicy -RetentionPolicy $RetentionPolicy

Archivos a respaldar

El objeto OBFileSpec define que archivos son incluídos y cuales son excluídos.

Ahora vamos a declarar los archivos incluídos y los excluídos, y finalmente agregarlos a la política:

$Inclusions = New-OBFileSpec -FileSpec @("C:\", "D:\")
$Exclusions = New-OBFileSpec -FileSpec @("C:\windows", "C:\temp") -Exclude
Add-OBFileSpec -Policy $newpolicy -FileSpec $Inclusions
Add-OBFileSpec -Policy $newpolicy -FileSpec $Exclusions

Aplicar la política

Ya teniendo todo definido, nos resta aplicar la política ejecutando lo siguiente:

Set-OBPolicy -Policy $newpolicy

Luego de ejecutar lo anterior, vamos a tener que indicar que sí queremos hacer el respaldo en Azure.

Y eso es todo, ya tenemos configurado nuestro respaldo en Azure!!! Y toda la configuración hecha por consola 🙂

Podemos obtener información del estado de la política utilizando los siguientes comandos:

Get-OBPolicy | Get-OBSchedule
Get-OBPolicy | Get-OBRetentionPolicy
Get-OBPolicy | Get-OBFileSpec

En próximas entregas vamos a ver como manipular estos respaldos y como restaurar de un punto guardado en Azure.

Saludos,

Comments