Trocando de provedor de domínio e também de domínio do fórum, então é melhor atualizar primeiro… má ideia, esqueci que 50% das minhas atualizações do Discourse falham .
Talvez um problema com “gem ‘mini_racer’” e encontrei alguns comentários sobre distro/gcc muito antigos, mas com 9 dias antes que o domínio expire, decidi restaurar o backup, via console, já que o site está fora do ar agora (e acabei de postar a mensagem de que o URL do fórum mudará, então as pessoas podem tentar agora, uh oh).
O que também falha. Uh oh de novo, aparentemente o site ficará fora do ar um pouco mais…
Logs anexados, muito sem noção (como sempre), tenho algumas coisas para resolver, então estou apenas cruzando os dedos para uma solução simples.
Por enquanto, eu só quero voltar para a versão anterior.
Então, com tempo suficiente, vou verificar se é possível fazer um upgrade “fácil” ou se finalmente, depois de 10 anos, farei uma nova instalação do Ubuntu do zero e migrarei as coisas para lá. Mas lembrando do que MAIS eu fiz ao longo dos anos… uh oh.
Sim, mas configurar um novo servidor e considerar se devo mover o controle de origem também e tudo o que instalei ao longo dos anos para ter em uma nuvem droplet 24/7… Algo que prefiro ter pelo menos um dia para fazer. O que não tenho agora.
Ok, por enquanto estou apenas restaurando o droplet da noite passada e colocando o backup nele. Espero que isso corra bem, pelo menos.
Sério, se uma atualização falhar, deveria haver um mecanismo automático de retorno ao estado anterior. Fazer backup do seu droplet parece um exagero e depende do administrador. Ser paranoico e ter duas instâncias e sempre começar movendo a ativa para a mais antiga e atualizando essa… bem, provavelmente o que eu deveria fazer hoje em dia.
Quando o seu sistema operacional está há 4 anos além do fim da vida útil, você não pode esperar que atualizações funcionem.
Mude para uma nova máquina virtual. É improvável que haja algo no servidor antigo que você precise. Não sei de qual controle de versão você está falando.
Mas, levei 2 anos para atualizar todas as instâncias domésticas para o WIN11 (= sempre sem tempo).
A Finlândia está mudando para TV apenas em HD no final deste mês (alguém realmente não assiste tudo pela Netflix = sim) e tenho trabalhado nisso por meses.
Ainda tenho um servidor web W7/IIS7 não atualizado
E, o discourse está no final desta lista… talvez no verão.
Há o que fazer e o que pode ser feito. A realidade é dura.
Tive alguns problemas para restaurar o backup do droplet, mas consegui colocar as coisas de volta. Ufa.
Bem, tive que atualizar o app.yml por causa da troca de domínio e fiz a reconstrução do app em vez de reiniciar por engano, sem tirar um snapshot no Digital Ocean primeiro. Então, meio que me forcei a atualizar agora :(.
O que eventualmente funcionou. Como encontrei alguns obstáculos (risadas permitidas), publicarei meu caminho de (má) sorte aqui. Talvez alguém se depare com a exata mensagem de erro e receba ajuda com isso.
Tempo gasto 3,5h (acho que deveria ter sido preguiçoso e apenas feito a configuração de 1 clique do Digital Ocean, mas estava curioso se a atualização funcionaria).
*****Atualizar Ubuntu 16.x → Ubuntu 18.x
*****Atualizar Ubuntu 18.x → Ubuntu 20.x (surpreso com o quão bem isso realmente funcionou, muito melhor que o Windows )
*Bem-vindo ao Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-208-generic x86_64)*
*root@Discourse:~# cd /var/discourse/*
*root@Discourse:/var/discourse# ./launcher restart app*
*ERRO: Versão do Docker 19.03.13 não suportada, por favor, atualize para pelo menos 20.10.0, ou recomendado 24.0.7*
*root@Discourse:/var/discourse# sudo apt-get install docker-ce --only-upgrade*
*Lendo listas de pacotes... Pronto*
*Construindo árvore de dependências*
*Lendo informação de estado... Pronto*
*docker-ce já é a versão mais recente (5:19.03.13~3-0~ubuntu-xenial).*
******(/(&(%(&/()(=)/&/))&/*
******Não queria descartar o docker e reinstalá-lo, mas agora já tive o suficiente...*
*root@Discourse:/var/discourse# sudo apt remove docker docker-engine docker.io containerd runc*
*root@Discourse:/var/discourse# sudo apt install apt-transport-https ca-certificates curl software-properties-common*
*root@Discourse:/var/discourse# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -*
*root@Discourse:/var/discourse# sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"*
*root@Discourse:/var/discourse# sudo apt update*
******Ia executar isso também, mas não consegui encontrar nos meus logs, então talvez eu não tenha (o comando não aparece, mas a instalação sim, hein?):*
******sudo apt install docker-ce docker-ce-cli containerd.io*
*root@Discourse:/var/discourse# sudo docker --version*
*Versão do Docker 28.0.1, build 068a01e*
*root@Discourse:/var/discourse# ./launcher rebuild app*
******Levou algumas tentativas, mas finalmente pareceu melhor após algumas reconstruções.*
******... finalmente cheguei ao redis, oba... ou não*
*docker: Resposta de erro do daemon: falha ao configurar a rede do contêiner: o driver falhou na programação da conectividade externa no endpoint app (ea1a6cc790c13940435c2626a4e8b6169f04612f4be552be25564def7d5745eb): falha ao vincular a porta do host para 0.0.0.0:80:172.17.0.2:80/tcp: endereço já em uso*
******(/(&(%(&/()(=)/&/))&/ (ou eu já disse isso?)*
*root@Discourse:/var/discourse# hostname -I*
*139.X.X.X 10.19.0.5 172.17.0.1*
*root@Discourse:/var/discourse# sudo lsof -i :80*
*COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME*
*apache2 839 root 4u IPv6 23477 0t0 TCP *:http (LISTEN)*
*apache2 844 www-data 4u IPv6 23477 0t0 TCP *:http (LISTEN)*
*apache2 845 www-data 4u IPv6 23477 0t0 TCP *:http (LISTEN)*
******Apache ativado por padrão? Desde quando? De jeito nenhum!*
*root@Discourse:/var/discourse# sudo systemctl stop apache2*
*root@Discourse:/var/discourse# sudo systemctl disable apache2*
*Sincronizando estado do serviço apache2 com script de serviço SysV com /lib/systemd/systemd-sysv-install.*
*Executando: /lib/systemd/systemd-sysv-install disable apache2*
*Removido /etc/systemd/system/multi-user.target.wants/apache2.service.*
*root@Discourse:/var/discourse# ./launcher start app*
******Eis que finalmente! (Após a usual mensagem lenta de erro do nginx)*
******Após a inicialização, claro, recebo... que eu estava esperando... ah bem, assim que tudo funcionar por uma semana, talvez continue sofrendo... depois de tirar um snapshot e backup e... ;)*
*Nova versão '22.04.5 LTS' disponível.*
*Execute 'do-release-upgrade' para atualizar para ela.*
Eu teria criado um novo droplet e feito uma instalação limpa e copiado o backup ou Mover um site Discourse para outro VPS com rsync. Eu também faço uma versão híbrida onde eu uso rsync para os certificados ssl, mas depois restauro um backup. Isso economiza a etapa de atualização do banco de dados.