Automatizar o Start e Stop de Máquinas Virtuais no Azure

O que é Automation Accouts?

Como o próprio nome diz, uma conta de automação é um recurso que possibilita a criação de automações para a sua assinatura. Com isso, você não vai mais precisar fazer tarefas repetidas manualmente. Deixe que o próprio Azure Automation faça isso. Para ficar mais interessante, os 500 primeiros minutos são gratuitos! Ou seja, você pode criar esta automação sem qualquer impacto nos custos da sua atual infra na nuvem.

As contas de automação permitem a criação de runbook. Acostume-se com este termo. Runbooks armazenam toda a sua automação, como em um livro de receitas. Você pode criar todo o tipo de runbook, para os mais diversos tipos de tarefas. Leia mais sobre eles na documentação oficial sobre Azure Automation.

Ambiente:

Usarei como exemplo um ambiente com uma máquina virtual chamada SRV-01. Vou automatizar a inicialização e o desligamento da máquina virtual com os seguintes critérios:

  • O start da VM deve ocorrer de segunda a sexta às 08:00 da manhã.
  • O Stop (desalocar) da VM deve ocorrer de segunda a sexta às 18:00 da noite.
  • A máquina não ficará ligada aos finais de semana.

01 – Faça login no portal do Azure

02 – Crie um grupo de recursos para armazenar a conta de automação. No portal, pesquise por Resource Groups.

03 – Na tela Resource groups, clique em Create para criar um novo grupo de recursos.

04 – Na tela Create a resource group, selecione a assinatura, um nome para o grupo de recursos e localização, em seguida clique em Review+create.

05 – Na tela Create a resource group, clique em Create.

06 – Conforme podemos observar na imagem abaixo, o grupo de recursos foi criado com sucesso.

07 – No portal, pesquise por Automation Accounts.

08 – Na tela Automation Accounts, clique em create automation accounts.

09 – Na tela Add Automation Account, selecione um nome para a conta de automação, assinatura, grupo de recursos e localização. Para a opção Create Azure Runs As account, selecione Yes. Em seguida, clique em Create.

10 – Como podemos observar na imagem abaixo, nossa conta de automação foi criada com sucesso.

Crie e Publique um Runbook

11 – Após selecionar a conta de automação que criamos com nome “conta-de-automacao”, navegue até Process Automation e clique em Runbooks.

12 – Na tela conta-de-automacao | Runbooks, clique em Create a runbook.

13 – A tela Create a runbook será aberta. Selecione um nome intuitivo para o runbook. Em Roubook type selecione PowerShell e clique em Create.

14 – A tela Edit PowerShell Runbook será aberta. Cole o script abaixo e clique em Save e Publish.

O script utilizado abaixo também está disponível para download no github.

 

 

 

 

https://github.com/Jadson-Alves/Start-e-Stop-Maquinas-Virtuais-no-Azure

 

Param(
[string]$VmName,
[string]$ResourceGroupName,
[ValidateSet(“Iniciar”, “Desligar”)]
[string]$VmAction
)
# Autenticar na conta de automação
$Conn = Get-AutomationConnection -Name AzureRunAsConnection
Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID `
-ApplicationID $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
# Iniciar VM
IF ($VmAction -eq “Iniciar”) {
Start-AzureRmVM -Name $VmName -ResourceGroupName $ResourceGroupName
}
# Desligar VM
IF ($VmAction -eq “Desligar”) {
Stop-AzureRmVM -Name $VmName -ResourceGroupName $ResourceGroupName -Force
}

15 – Após clicar em Publish uma notificação será exibida informando que a versão do runbook será publicada e vai substituir a versão publicada anteriormente, clique em yes para prosseguir.

16 – Volte para a tela da conta de automação, navegue até Shared Resources e selecione Schedules.

17 – Na tela Schedules, clique em +Add a schedule.

18 – Na tela New Schedule, crie dois agendamentos para iniciar a VM e desligar a VM.

Selecione um nome para o agendamento, o início do agendamento e time zone. Neste exemplo, vou utilizar as marcações de Fortaleza. Selecione a opção Recurring –> Recur every, digite 1, selecione Week e selecione os dias de execução do agendamento.

Para este ambiente, vou agendar o start e o stop da máquina virtual de segunda a sexta.

Caso deseje agendar o start e stop de mais de uma VM em seu ambiente, você deverá criar um agendamento para cada máquina virtual.

Agendamento Start VM

O agendamento abaixo inicia a VM SRV-01 de segunda a sexta às 08:00 am.

O agendamento do Start da VM foi criado com sucesso.

Agendamento Stop VM

Clique em +Add a Schedule. Selecione um nome para o agendamento, o início do agendamento e time zone. Neste exemplo, vou utilizar as marcações de Fortaleza. Selecione a opção Recurring –> Recur every , digite 1, selecione Week e selecione os dias de execução do agendamento.

 

O agendamento abaixo desaloca a VM SRV-01 de segunda a sexta às 06:00 pm.

19 – Como podemos observar na imagem abaixo, o agendamento foi criado com sucesso.

Criar agendamento recorrente

20 – Na tela da conta de automação, navegue até Process Automation e selecione Runbooks.

21 – Na tela Runbook, selecione Runbook-VMs-jadsonalves.

22 – Na tela Runbook-VMs-jadsonalves, navegue até Resources e clique em Schedules.

 

23 – Na tela Schedules, clique em Add a schedule.

24 – Na tela Schedule Rubook, selecione a opção Schedule.

Vou adicionar os agendamentos criados para iniciar e desligar a máquina virtual.

25 – Na tela Schedule,  é possível selecionar os agendamentos criados. Vou selecionar o Start-VM-SRV01.

26 – Após selecionar o agendamento Starrt-VM-SRV01, clique em Configure parameters and run settings.

27 – Na tela parameters,  selecione o nome da máquina virtual, o nome do grupo de recursos e para a opção VMACTION, utilize Iniciar. Em seguida, clique em OK.

28 – Na tela Schedule Runbook, clique em OK.

29 – Como podemos observar o agendamento no runbook para iniciar a VM às 08:00 foi criado.

30 – Vou criar o agendamento do desligamento da VM. Clique em +Add a schedule.

31 – Na tela Schedule Runbook, selecione Link a schedule to your runbook.

32 – Na tela Schedule, selecione o agendamento Stop-VM-SRV01.

33 – De volta à tela Schedule Runbook, selecione Configure parameters and run settings.

34 – Na tela parameters, selecione o nome da máquina virtual, o nome do grupo de recursos e para a opção VMACTION, utilize Desligar. Em seguida, clique em OK.

35 – De volta a tela Schedule Runbook, clique em OK.

36 – O agendamento para o runbook foi configurado. A inicialização e o desligamento  da máquina virtual SRV01 estão automatizados.

37 – Na tela da conta de automação, navegue até Process Automation. Em seguida, clique em Jobs.

Aqui é possível ver todos os agendamentos executados. Todos os agendamentos foram executados com sucesso e no horário definido.

 

Conclusão

Neste post apresentei o passo a passo para inicializar ou desligar VMs no Azure de forma automatizada e bem simples. Dentre as vantagens de automações como estas, a grande redução mensal de custos é um destaque, já que as VMs são cobradas apenas quando ligadas.

Comente suas sugestões e observações! Forte abraço, obrigado e até o próximo post.

Share

    Comments

    1. Parabéns, excelente explicação!

    2. Avatar for Jádson Alves David Alves Batista : 13 de abril de 2021 at 1:59 pm

      Show . parabéns pelo conteúdo.

    Deixe um comentário

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

    © 2019 All Rights Reserved. Cooperati.