AzureCLI – Automatizando ligamento e desligamento de VM via Azure

Olá pessoal, quem tem familiaridade com comandos Linux, O Azure CLI proporciona você armazenar e centralizar seus scripts e agendar via CRONTAB.

É bem simples mas muito funcional. Sabemos que o Poweshell é poderoso e utilizar o AzureCLI facilita mais ainda outra maneira de usar e automatizar ambientes.

Um dos comandos que irei realizar é o de desligamento, ligamento e desalocar os recursos.

O comando é bem simples

az vm start – ele liga a maquina virtual
az vm stop – ele desliga a maquina virtual mas não desaloca os recursos
az vm deallocate – ele desliga a maquina e desaloca os recursos da maquina

Então vamos lá.

O ambiente temos 3 maquinas, uma Windows server01 ligada no Grupo001, A linux no Grupo002 desligada, e uma Marketplace Alfresco no grupo Rgalfresco ligada.

Os comandos são simples.

az vm stop -g Grupo001 -n server01, iremos desligar.

az vm start -g Grupo002 -n Server02, iremos ligar.

az vm deallocate -g Grupo002 -n Server02, iremos desalocar a mesma maquina 002 depois de ligar novamente.

Veja o vídeo Abaixo de demonstração

Para agendar o horário para ligar, desligar ou desalocar a maquina use o CRONTAB.

Vamos criar o script bem simples para o cron executar.

vim script_ligar_vm_azure.sh

De o comando chmod a+x script_ligar_vm_azure.sh para ter permissão de execução.

O mesmo você irá fazer para os outros scripts para execução.

Como usar o cron

O primeiro passo é abrir o crontab. Para isso, você pode usar editores de textos como vi, vim, emacs ou nano. Também é possível digitar o comando crontab -e para editar o arquivo exclusivo de seu usuário. Neste caso, a edição é feita como se você estivesse usando o vi.

O crontab tem o seguinte formato:

[minutos] [horas] [dias do mês] [mês] [dias da semana] [usuário] [comando]
O preenchimento de cada campo é feito da seguinte maneira:

– Minutos: informe números de 0 a 59;
– Horas: informe números de 0 a 23;
– Dias do mês: informe números de 0 a 31;
– Mês: informe números de 1 a 12;
– Dias da semana: informe números de 0 a 7;
– Usuário: é o usuário que vai executar o comando (não é necessário especificá-lo se o arquivo do próprio usuário for usado);
– Comando: a tarefa que deve ser executada.

Repare que a ordem desses valores indica o nome correspondente do campo. Por exemplo, no campo mês, 1 a 12 quer dizer de “janeiro a dezembro”. No caso de dias da semana, 0 a 6 quer dizer de “domingo a sábado”. Note que o número 7 também pode ser usado. Neste caso, assim como o número 0, o 7 equivale ao dia de “domingo”.

No lugar desses valores, você pode informar * (asterisco) para especificar uma execução constante. Por exemplo, se o campo dias do mês conter *, o comando relacionado será executado todos os dias.

Você também pode informar intervalos no preenchimento, separando os números de início e fim através de – (hífen). Por exemplo, se no campo horas for informando 2-5, o comando relacionado será executado às 2, 3, 4 e 5 horas. E se o comando tiver que ser executado às 2 horas, entre 15 e 18 horas e às 22 horas? Basta informar 2,15-18,22. Nestes casos, você separa os parâmetros por vírgula.

Vamos ao exemplo:

De o comando crontab -e


Edite para o editor que você goste mais. O meu é o VIM.


Os scripts estão no diretório home pois você não pode executar como root.


Pronto, agendei para 22:30 executar o script de ligamento da maquina.

Lembrando que a máquina virtual já tem o agendamento para desligamento em modo gráfico.

Temos o Automation que você pode utilizar também como ponto central de scripts.

Mas o Azure CLI com o shell também é uma ótima alternativa e familiaridade para quem conhece linux.

Espero que tenham gostado.

Anúncios

Sobre Fabio Silva

MVP Microsoft Azure - Entusiasta Office 365 Profissional apaixonado por tecnologia. Perfil generalista mas com profundo conhecimento em varias tecnologias. Mais de 10 anos de skill em ambientes Linux Analista Senior realizando trabalhos: Comunicação unificada Lync 2013, Sharepoint 2013, Exchange 2013, Vmware e Windows 2012 preparado para nuvem, hibrida e on-premisses. Comunicação unificada Lync 2013, Sharepoint 2013, Exchange 2013, Vmware e Windows 2012 preparado para nuvem, hibrida e on-premisses. Implantação de comunicação unificada e mensageria Lync 2013 e Exchange 2013 na empresa Penso Tecnologia. Itcore Consultor Senior em todas soluções Microsoft e Virtualização. Consultor Microsoft e Linux Senior De Julho de 2012 a Março de 2013 Consultor Microsoft e Linux Senior De Maio de 2012 a Setembro de 2012 Tecban (Técnologia Bancaria) Auditor de Sistemas Pleno Março de 2012 a Maio de 2012 Analista de TI Senior Março de 2011 a Março de 2012 Analista de infra-estrutura de redes e desenvolvimento Maio 2007 a Março de 2011 Analista de Redes Março de 2005 a Maio de 2007 Integradora THS Área de Suporte CPD Janeiro de 2004 a Janeiro de 2005 Especializações: Certificado Microsoft Windows 2003, Certificado Zimbra Network Edition, Certificado Sonicwall. Especialização em Messageria Exchange 2007 e 2010. Especialização em Linux

Publicado em 6 de novembro de 2017, em Azure, Linux e marcado como , , . Adicione o link aos favoritos. 9 Comentários.

  1. Fabio, boa tarde.

    Sabe como faço para alterar o horário? Atualmente esta como UTC, quero mudar para horário de Brasilia.

    Obrigado.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: