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:
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
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
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 "[email protected]" -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