Google Cloud Platform - Script Start e Stop de VMs
Olá pessoal,
Após algumas dúvidas referente ao start e stop de forma remota em máquinas virtuais rodando em nuvem que amigos abordaram comigo, escrevi esse script básico para realizar essas tarefas, conforme o horário definido pelo responsável da operação.
Para ambientar aos que leem esse artigo, segue o cenário em que o script foi baseado.
Cenário:
Um projeto cloud do Google Cloud Platform possui 8 máquinas virtuais com variadas
funções utilizando o sistema operacional Windows e Linux.
Dessas 8 máquinas temos 1 que fica ligada 24/7.
- VM linux - Função XYZ.
As demais VM rodam softwares legados, ou sistemas que são utilizados apenas em
horários específicos.
Com esse cenário, conseguimos utilizar o CRON do Linux para agendar um horário para execução do Start e Stop das máquinas virtuais.
Cron:
00 8 * * 1-5 /tmp/script.sh
00 18 * * 1-5 /tmp/script.sh
O script aborda apenas o start e stop de uma VM, caso queira dar start em outras ao mesmo tempo, ou conforme necessidade, é necessário trabalhar o comando GCLOUD.
Script:
#!/bin/sh
#Star e Stop na VM conforme horário
HORA=$(date +%H%M)
# -GE maior ou igual
# -LE menor ou igual
# -A and
if [ $HORA -ge 800 ]; then
#gcloud compute instances start NAMES [NAMES …] [--csek-key-file=FILE] [--zone=ZONE] [GLOBAL-FLAG …]
gcloud compute instances start michel-teste --zone=projects/XYZ/zones/us-east1-a
elif [ $HORA -ge 1800 ]; then
#gcloud compute instances stop NAMES [NAMES …] [--discard-local-ssd] [--zone=ZONE] [GLOBAL-FLAG …]
gcloud compute instances stop michel-teste --zone=projects/XYZ/zones/us-east1-a
fi
Artigo simples e sucinto, mas espero que ajude nessas dúvidas iniciais.
Abraço.
Técnico de laboratório de redes na Universidade Federal de Lavras
4 aOlá Michel, ótima solução! Você ainda usa isso ou já encontrou outra solução? Pergunto pois preciso da mesma coisa, só que com 6 Servidores. Desde já agradeço.
Especialista em TI
6 aBoa tarde Michel pelo que entendi você fez através do servidor que ligado 24 horas então ela executa comando para desligar as demais você não tem nenhum script para o próprio G Cloud pra desligar a instância.
IT Automation & Services Manager at Delivery Hero SE
7 aLegal!
Desenvolvedor no code/low code | Fundador da Citizen Devs
7 amuito louco!!!