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.

Sobre Fabio Silva - MVP Reconnect

MVP Reconnect 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. 12 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.

    Curtir

  2. Obrigado pelas dicas. Tentei criar o script para ligar a vm com indicou, porém, para usar o terminal informa que não tenho armazenamento montado ( a minha vm esta no ar, com Windows Server). Tentei adquirir o serviço, mas informa que não há na minha localidade (a VM esta no Sul do Brasil) Teria alguma dica para conseguir ligar a vm em determinado horário de uma outra forma?
    Novamente obrigado pelas dicas.

    Curtir

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 )

Foto do Google

Você está comentando utilizando sua conta Google. 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 )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Project THOR

Technical and Human infrastructure for Open Research

randieri.com

Il blog di Cristian Randieri

TEC OFFICE PRODUTIVO

Tec Office Produtivo é um grupo de treinamentos, dicas e tutorias de informática sobre aplicativos utilizados em escritórios.

Gold Recipes

Gols Recipes

Escadas Especiais

Projetos, fabricação e instalação de escadas em geral

Jaqueline Ramos

Devops & Cloud

Blog do Douglas Romão

MVP Office Apps and Services | Modern Workplace and Business Applications Expert

%d blogueiros gostam disto: