(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
PowerShell

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.

Compartir: