Automação no Azure: Desligando VMs de um Resource Group com Automation Account

novembro 11, 2023 4 mins to read
Share

Neste procedimento, vamos mostrar como configurar uma conta de automação no Azure e criar um runbook para desligar todas as máquinas de um único grupo de recursos.

Automation Account

Um Automation Account no Azure é um serviço que oferece automação de processos e tarefas em ambientes da nuvem. Ele fornece recursos para criar, implantar e gerenciar runbooks, que são scripts automatizados que executam tarefas específicas no Azure, proporcionando maior eficiência e consistência nas operações. Essa ferramenta é essencial para simplificar e automatizar a administração de recursos na nuvem.

Implementação

Dentro do portal do Azure, localize o serviço “Automation Accounts” e clique nele.

Agora vamos clicar em create

Insira as informações de acordo com as configurações do seu ambiente:

  • Sua subscription
  • Nome do seu grupo de recursos
  • Nome da sua conta de automação
  • Sua região

Utilize a identidade do sistema para autenticar na assinatura.

No meu exemplo, vou usar a conectividade pública.

Agora basta clicar em revisar e criar

A conta de automação foi criada com sucesso. Agora, basta clicar em “Go to resource”.

Configurando as permissões para a conta de automação

Dentro da conta de automação vamos clicar em Identity e posteriormente em Azure Role assignments

Agora clique em Add role assignment

Em seguida, selecione as permissões que a conta de automação terá.

Criando Runbook para Executar Scripts PowerShell

Ao concluir o procedimento mencionado, estamos prontos para criar o nosso runbook, para isso basta acessar a seção “Runbooks” e clicar em “Create a Runbook”.

Vamos nomear nosso runbook, escolher a versão do PowerShell e, em seguida, clicar em “Create“:

Após fornecer as informações anteriores, você pode inserir o script conforme mostrado abaixo:

Segue o exemplo do script que utilizei no seu caso troque apenas a informação do resource group

#Conectando no azure
try {
    "Logging in to Azure..."
    Connect-AzAccount -Identity
}
catch {
    if (!$servicePrincipalConnection) {
        $ErrorMessage = "Connection $connectionName not found."
        throw $ErrorMessage
    } else {
        Write-Error -Message $_.Exception
        throw $_.Exception
    }
}
# Variavel
$resourceGroupName = "nome do resource group"  # Nome do resource group

# Obtém todas as VMs no grupo de recursos especificado
$vms = Get-AzVM -ResourceGroupName $resourceGroupName

foreach ($vm in $vms) {
    # Desliga a VM
    Stop-AzVM -ResourceGroupName $resourceGroupName -Name $vm.Name -Force

    Write-Output "Desligando VM: $($vm.Name)"
}

Write-Output "Operação concluída."

Após finalizar e salvar seu script, publique-o para que seja utilizado. Em seguida, estamos prontos para realizar a primeira execução clicando em start:

Validação do Script

Ao verificar os registros, constatamos que o script foi executado com êxito, resultando no desligamento da VM no respectivo resource group. Essa ação contribui significativamente para o controle e otimização dos recursos em seu ambiente.

Ao acessar o Console Azure, é possível verificar com sucesso que a máquina virtual foi desligada conforme previsto. Essa confirmação é crucial para garantir que as ações automatizadas estejam alinhadas com as expectativas de gerenciamento do ambiente.

Ao explorar os logs, torna-se evidente que a conta de automação que criamos desempenhou um papel crucial no processo de desligamento da VM. Essa clareza na identificação do responsável é fundamental para manter a transparência e a rastreabilidade em suas operações no ambiente do Azure.

Conclusão

Ao explorar esta publicação, consolidamos nosso entendimento sobre as contas de automação no ambiente Azure. A capacidade de criar scripts personalizados apresenta-se como uma ferramenta poderosa, permitindo aprimorar significativamente a eficiência e gestão de nossos recursos na nuvem. Este conhecimento oferece bases sólidas para explorarmos ainda mais as possibilidades de automação e otimização em nosso ambiente. Continue acompanhando para mais insights e aprimore suas práticas no Azure. Juntos, vamos impulsionar a eficiência operacional e maximizar o potencial da sua infraestrutura na nuvem.

Deixe um comentário

Seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *