Mover um site Discourse para outro VPS usando rsync

Migrei para um novo VPS hoje e pensei em compartilhar minhas experiências, já que parece que muitas pessoas estão encontrando o bloqueador de sistema operacional de versão antiga em suas atualizações ultimamente :blush:

Estou no Digital Ocean, então criei um novo droplet.

VPS antigo = Ubuntu Server 18.04.6 LTS

Novo VPS = Ubuntu Server 23.10

Fiz a manutenção usual no novo VPS - por favor, edite para seu próprio uso:

Apt-get update

Apt-get upgrade

Apt-get install fail2ban

ufw default deny incoming

ufw default allow outgoing

ufw allow ssh

ufw allow http

ufw allow https

ufw enable

Em seguida, criei um novo diretório vazio para o Discourse:

sudo mkdir -p /var/discourse

Então instalei o Docker:

wget -qO- https://get.docker.com/ | sh

Em seguida, alterei o TTL do meu DNS de 30 minutos para 10 minutos (o mínimo que o GoDaddy permite).

No meu servidor antigo, baixei uma cópia local do backup do banco de dados do Discourse da noite passada (você nunca pode ter backups locais suficientes). Também baixei uma cópia do app.yml para o meu PC local.

Como sugerido por algumas pessoas acima, fiz um rsync “root-to-root”. Usei o endereço IP em vez do nome do host, para evitar qualquer confusão de DNS. Também, como sugerido acima, usei as opções -avz:

rsync -avz root@old.ip.address.here:/var/discourse /var

Para referência, minha pasta do discourse tem 25 GB.

Levou ~25 minutos para fazer o rsync do servidor antigo para o novo servidor. Isso foi simplesmente entre dois droplets do Digital Ocean na mesma região LON1. Suas experiências podem variar.

Após o rsync e tentar uma reconstrução, encontrei o mesmo erro que o @piratdavid encontrou sobre o postgres database system is shut down.

Então parei o aplicativo no VPS antigo:

./launcher stop app

E fiz outro rsync, apenas para as alterações desta vez:

rsync -avz --delete root@old.ip.address.here:/var/discourse /var

Em seguida, iniciei o aplicativo Discourse antigo novamente e muito rapidamente o coloquei em Modo de Manutenção - isso é para que as pessoas ainda possam acessá-lo e verão a mensagem de aviso de manutenção usual.

Isso também me dá tempo para trabalhar no novo VPS :blush:

Atualizei meu arquivo HOSTS no meu PC local para que eu pudesse acessar o discourse no novo VPS sem avisos/problemas no navegador.

No novo VPS, executei:

./discourse-setup

Isso foi para que ele pudesse atualizar as configurações de RAM e CPU no arquivo app.yml automaticamente.

Em seguida, fiz uma reconstrução do aplicativo no novo VPS:

./launcher rebuild app

Fiz alguns testes de fumaça, tudo bem.

DNS atualizado - trabalho feito.

Obrigado pelo tópico detalhado, pessoal :smiley:

4 curtidas