Por diversos motivos, pode ser necessário dar um boot em algum servidor.
Esse é um processo CRÍTICO que deve ser evitado a todo custo, porque:
- leva algum tempo
- os containers voltam "tortos" e exigem interação manual
- se você perder conexão com a internet no meio do caminho, o servidor não deve voltar sozinho
Então EVITE DAR BOOT NO SERVIDOR.
Mas, se precisar...
OPÇÕES
Existem duas maneiras de rebootar um servidor:
- reboot via SSH (preferencial)
- reboot pela interface DigitalOcean (dedoff)
Sempre que possível, faça o processo via SSH, porque há menos chance de problemas e o sofrimento será menor.
Em situaçõe críticas (crash geral que não permite nem conexão via SSH), daí não há alternativa e é necessário "tirar o servidor da tomada" pela interface da DigitalOcean.
REBOOT VIA SSH
Se é possível conectar via SSH, o melhor procedimento é o seguinte:
- parar todos os containers Docker de Acceleros
- parar todos os containers Docker de infra-estrutura
- garantir que não há nenhum container em execução
- rebootar o servidor
Isso pode ser feito da seguinte maneira:
/root/docker/scripts/docker-stopDeploys.sh
/root/docker/scripts/docker-stopEverything.sh
docker ps
# NÃO DEVE MOSTRAR NENHUM CONTAINER
reboot now
REBOOT VIA INTERFACE DIGITALOCEAN
Se não for possível acessar o servidor via SSH (nem pelo console da DigitalOcean), o jeito é "desligar na brutalidade".
Basta acessar a tela do servidor e clicar no botão de Ligar/Desligar.
Imagem original do YouTrack não migrada (image.png). Reanexar o screenshot correspondente.
Vai demorar um pouco (2/3 minutos?), porque primeiro é feita uma tentativa de "shutdown controlado", e apenas se essa tentativa falhar (e deve falhar, porque se chegou aqui é porque já está tudo danado) é feito um shutdown bruto.
Assim que o servidor desligar, o botão muda de cor. Daí basta clicar mais uma vez nele pra "religar".
A VOLTA APÓS SHUTDOWN BRUTO
Se você conseguiu parar todos os containers ANTES de fazer o boot, essa seção não serve pra nada.
Se você teve que fazer um shutdown bruto, você terá que ser rápido: o Docker vai tentar reiniciar todos os containers que estavam em execução antes do boot, mas será tanta coisa ao mesmo tempo (e tudo sem controle de ordem) que a chance do servidor não aguentar é grande.
Por isso, assim que você religar a máquina, acesse ela via SSH o mais rápido possível e pare todos os containers:
ssh root@molecula.iongrade.com.br
#CONECTOU NO SERVIDOR...
/root/docker/scripts/docker-stopEverything.sh
A máquina estará lenta, por isso é necessário paciência.
Mas assim que você conseguir parar os containers, tudo volta ao normal. Garanta via htop que a CPU está tranquila e que realmente não tem nenhum container em execução (docker ps).
Se for necessário, pode rodar o script docker-stopEverything.sh novamente.
RECOLOCANDO AS COISAS NO AR
Com o servidor de volta no ar e "zerado" (nenhum container em execução), e você conectado nele via SSH, podemos seguir o processo de manutenção.
Se tiver tempo, aproveite o momento pra fazer upgrades, por que é rara essa situação de "servidor limpo":
apt upgrade -y
Em seguida, vamos colocar as coisas no ar novamente de forma controlada.
Primeiro, vamos subir os serviços de infra-estrutura:
/root/docker/scripts/docker-startInfra.sh
Em seguida, suba os deploys (individualmente, se quiser priorizar algum, ou em lote através de script pronto):
# SE QUISER SUBIR TODOS OS DEPLOYS EM ORDEM ALFABÉTICA (PREFERENCIAL)
/root/docker/scripts/docker-startDeploys.sh
# SE QUISER ESCOLHER A ORDEM DE SUBIDA, TERÁ QUE FAZER MANUALMENTE EM TODOS
cd /root/docker/cliente01.accelerobr.com.br/scripts
./up.sh
cd /root/docker/cliente02.accelerobr.com.br/scripts
./up.sh
# ...
# ...
cd /root/docker/clientenn.accelerobr.com.br/scripts
./up.sh
Depois de subir todos os deploys, aguarde alguns instantes pra CPU "acalmar" e faça os seguintes testes:
- todos os containers estão em execução, sem reiniciar (
docker ps)? - os deploys estão acessíveis via HTTP?
- é possível acessar o broker MQTT dos clientes?
- a tela de
Status servidoresdo Ozone está mostrando informações atualizadas deste servidor?
Acompanhe por alguns momentos.
Aproveite para fazer uma limpeza geral de logs:
clearAllLogs
Seu servidor deve estar de volta em funcionamento.