Seguimos con los scripts de Azure Automation, después de haber visto cómo eliminar aquellos grupos de recursos que han quedado vacíos y cómo parar máquinas virtuales, ASM y ARM, dentro de un mismo grupo de recursos. Sin embargo, en este último ejemplo, puede que necesites que tus máquinas se vayan iniciando o parando en paralelo para que el proceso sea más rápido que ir de una en una.
En este post voy a mostrarte cómo puedes hacerlo para máquinas ASM (modo clásico) dentro de un mismo cloud service.
workflow Shutdown-Start-ASM-VMs-Parallel { Param( [Parameter(Mandatory=$true)] [String] $ServiceName, [Parameter(Mandatory=$true)] [Boolean] $Shutdown ) #The name of the Automation Credential Asset this runbook will use to authenticate to Azure. $CredentialAssetName = "DefaultAzureCredential"; #Get the credential with the above name from the Automation Asset store $Cred = Get-AutomationPSCredential -Name $CredentialAssetName if(!$Cred) { Throw "Could not find an Automation Credential Asset named '${CredentialAssetName}'. Make sure you have created one in this Automation Account." } #Connect to your Azure Account Add-AzureAccount -Credential $Cred if($Shutdown -eq $true){ Write-Output "Stopping VMs in '$($ServiceName)' cloud service"; Stop-AzureVM -ServiceName $ServiceName -Name * -Force } else{ Write-Output "Starting VMs in '$($ServiceName)' cloud service"; Start-AzureVM -ServiceName $ServiceName -Name *; } }
Como puedes ver, tanto en el comando Stop-AzureVM como Start-AzureVM puedes utilizar el asterisco como valor para el parámetro -Name, lo cual significa que aplica a todas las máquinas dentro del cloud service seleccionado.

He subido el script a la galería por si fuera de utilidad.

¡Feliz Lunes!