PowerShell para Azure: automatizar recursos con el módulo Az
João Barros
04 de October de 2024
1 min de lectura
El módulo Az PowerShell es la interfaz de línea de comandos más completa para Azure, con más de 10.000 cmdlets que cubren todos los servicios. Ideal para automatización, aprovisionamiento masivo y tareas de administración recurrentes.
Instalación y autenticación
Install-Module -Name Az -Scope CurrentUser -Force
# Login interactivo (abre el navegador para MFA)
Connect-AzAccount -TenantId "su-tenant-id"
# Login con un Service Principal (para automatización/CI-CD)
$secPwd = ConvertTo-SecureString $env:SP_SECRET -AsPlainText -Force
$cred = New-Object PSCredential($env:SP_CLIENT_ID, $secPwd)
Connect-AzAccount -ServicePrincipal -Credential $cred -TenantId $env:TENANT_ID
# Seleccionar suscripción
Set-AzContext -SubscriptionId "subscription-id"
Crear y gestionar recursos
# Crear un resource group
New-AzResourceGroup -Name "rg-analytics-prod" -Location "westeurope"
# Crear una storage account
New-AzStorageAccount `
-ResourceGroupName "rg-analytics-prod" `
-Name "stadatalakeprod" `
-Location "westeurope" `
-SkuName "Standard_LRS" `
-Kind "StorageV2" `
-EnableHierarchicalNamespace $true # ADLS Gen2
# Listar VMs en un resource group
Get-AzVM -ResourceGroupName "rg-analytics-prod" | Select-Object Name, Location, PowerState
Script de mantenimiento — apagado nocturno de VMs de dev
# Ejecutar vía un Azure Automation Runbook o tarea programada
$rg = "rg-dev"
$tags = @{ Environment = "Dev"; AutoStop = "true" }
Get-AzVM -ResourceGroupName $rg | Where-Object { $_.Tags["AutoStop"] -eq "true" } |
ForEach-Object {
Write-Output "Deteniendo VM: $($_.Name)"
Stop-AzVM -ResourceGroupName $rg -Name $_.Name -Force -AsJob
}
Get-Job | Wait-Job | Receive-Job
Exportar un inventario a Excel
# Listar todos los recursos Azure y exportar
$recursos = Get-AzResource | Select-Object Name, ResourceType, ResourceGroupName, Location
$recursos | Export-Csv -Path "inventario_azure.csv" -NoTypeInformation -Encoding UTF8
Conclusión
El módulo Az es indispensable para administradores e ingenieros Azure. Automatice tareas repetitivas (apagado de VMs, inventarios, creación de recursos), integre en Azure Automation Runbooks para ejecución programada y trate PowerShell como IaC ligero para operaciones del día a día.