PowerShell 7: Automatización de Tareas en Entornos Híbridos Windows/Linux

PowerShell 7 Entornos Híbridos Windows/Linux

Introducción

PowerShell 7 revoluciona la administración de sistemas híbridos al ofrecer compatibilidad multiplataforma. En este tutorial, automatizarás tareas críticas como sincronización de archivos y consumo de APIs, reduciendo la dependencia de herramientas separadas para cada OS.


1. Configuración Inicial

Requisitos

  • Windows 10/11 o Linux (Ubuntu/RHEL).
  • PowerShell 7.4+ instalado:bashCopyDownload# Linux (Ubuntu) sudo apt update && sudo apt install -y powershellpowershellCopyDownload# Windows winget install –id Microsoft.PowerShell –source winget

2. Sincronización de Archivos entre Windows y Linux

Script: Sync-Files.ps1

# Requiere módulo PSScp (para SCP)
Install-Module -Name PSScp -Force

$linuxUser = "admin@192.168.1.100"
$windowsPath = "C:\Data\Reports"
$linuxPath = "/home/admin/reports"

# Copia archivos nuevos/modificados
$files = Get-ChildItem -Path $windowsPath -File | Where-Object { $_.LastWriteTime -gt (Get-Date).AddHours(-24) }
foreach ($file in $files) {
    Write-Host "Enviando $($file.Name) a Linux..."
    scp -P 22 "$($file.FullName)" "${linuxUser}:${linuxPath}"
}

Explicación:

  • Usa protocolo SCP para transferencia segura.
  • Filtra archivos modificados en las últimas 24 horas.

3. Consumo de APIs REST desde PowerShell

Ejemplo con JSONPlaceholder

$apiUrl = "https://jsonplaceholder.typicode.com/users"
$response = Invoke-RestMethod -Uri $apiUrl -Method Get

# Filtra usuarios de California y exporta a CSV
$response | Where-Object { $_.address.city -eq "Los Angeles" } | 
    Select-Object name, email, phone | 
    Export-Csv -Path ".\california_users.csv" -NoTypeInformation

Salida útil para:
✅ Migración de datos entre sistemas.
✅ Integración con SaaS empresarial.


4. Configuración en VS Code

Recomendaciones

  1. Extensión PowerShell Extension Pack.
  2. Snippets para autocompletado:jsonCopyDownload{ “API Call”: { “prefix”: “invoke-api”, “body”: “Invoke-RestMethod -Uri ‘${1:url}’ -Method ${2|Get,Post,Put|}” } }
  3. Terminal integrada con perfiles separados (Windows + Linux).

5. Ejemplo Avanzado: Monitor de Servicios

Script que alerta si Apache/Nginx falla en Linux

$linuxServer = "user@linux-server"
$service = "nginx"

$status = ssh $linuxServer "systemctl is-active $service"
if ($status -ne "active") {
    # Envía alerta a Slack/MS Teams
    $webhookUrl = "https://hooks.slack.com/services/..."
    $body = @{ text = "⚠️ El servicio $service en $linuxServer está INACTIVO" } | ConvertTo-Json
    Invoke-RestMethod -Uri $webhookUrl -Method Post -Body $body -ContentType "application/json"
}

Conclusión

PowerShell 7 unifica la administración de sistemas híbridos permitiendo:
🔹 Reutilización de scripts en ambos entornos.
🔹 Interoperabilidad con APIs modernas.
🔹 Integración con herramientas como VS Code.

Recursos Adicionales

Leave a Reply

Your email address will not be published. Required fields are marked *