Você já esqueceu de desligar uma máquina virtual (VM) do Azure e acabou tendo custos inesperados? Isso acontece com os melhores de nós. Mas não se preocupe, porque o PowerShell (PoSH) pode te ajudar!
Neste post do blog, vamos explorar como usar o PowerShell para automatizar o processo de desligar ou ligar VMs do Azure. Embora isso não esteja diretamente relacionado ao SQL Server, é uma habilidade útil de se ter se você estiver trabalhando com o Azure.
Antes de mergulharmos no script, vamos discutir brevemente o que é o PowerShell. O PowerShell é uma linguagem de script desenvolvida pela Microsoft que permite automatizar tarefas administrativas e gerenciar vários produtos da Microsoft, incluindo o Azure.
Agora, vamos dar uma olhada no script fornecido pelo autor:
# Instale os módulos do Azure Resource Manager da PowerShell Gallery
Install-Module AzureRM
# Faça login no Azure
Login-AzureRmAccount
$NewStatus = "Off" ## Valores = On, Off ou Flip
$RGName = "" ## Opcional. Se não for "", restringir apenas às VMs no Grupo de Recursos.
IF ($RGName -ne "") {
## Obtenha apenas as VMs para o GR solicitado.
$VMs = Get-AzureRmVM -Status -ResourceGroupName $RGName
}
ELSE {
## Obtenha todas as VMs independentemente do GR.
$VMs = Get-AzureRmVM -Status
}
## Percorra cada VM
foreach ($VM in $VMs) {
## Se a VM estiver desalocada e quisermos ligá-la ou inverter, ligue-a.
IF ($VM.PowerState -eq "VM deallocated" -and ($NewStatus -eq "On" -Or $NewStatus -eq "Flip")) {
"Iniciando " + $VM.Name
Start-AzureRmVM -ResourceGroupName $VM.ResourceGroupName -Name $VM.Name
}
## Se a VM não estiver desalocada e quisermos desligá-la ou inverter, desligue-a.
ELSEIF ($VM.PowerState -ne "VM deallocated" -and ($NewStatus -eq "Off" -Or $NewStatus -eq "Flip")) {
"Desligando " + $VM.Name
Stop-AzureRmVM -ResourceGroupName $VM.ResourceGroupName -Name $VM.Name -Force
}
}
## Liste o status atual
Get-AzureRmVM -Status | SELECT Name, PowerState
Este script permite que você especifique se deseja ligar todas as VMs, desligá-las ou inverter o status delas. Ao inverter o status, você pode alternar facilmente entre ligá-las e desligá-las. Além disso, você pode optar por restringir a operação a VMs dentro de um grupo de recursos específico.
É importante observar que o script requer os módulos do Azure Resource Manager, que podem ser instalados usando a PowerShell Gallery. Você também precisa fazer login na sua conta do Azure antes de executar o script.
Depois de ter os módulos necessários e estar logado, você pode executar o script e observar enquanto ele desliga ou liga suas VMs do Azure com base nos critérios especificados.
Embora o script fornecido seja um ótimo ponto de partida, o autor menciona que ainda não descobriu como automatizar a tarefa de login sem intervenção manual. Se você é um especialista em PowerShell e tem uma solução, o autor adoraria ouvir de você!
Lembre-se, automatizar tarefas como gerenciar VMs do Azure pode economizar tempo e dinheiro. Então, experimente o PowerShell e veja como ele pode simplificar seu fluxo de trabalho no Azure.
Isso é tudo para o post do blog de hoje. Fique ligado para mais conteúdo relacionado ao SQL Server no futuro!