Move a Discourse site to another VPS with rsync

本日、新しいVPSに移行したのですが、最近多くの人がアップデート時に古いバージョンのオペレーティングシステムでブロックされているようなので、私の経験を共有したいと思います :blush:

Digital Ocean を利用しているので、新しいドロップレットを作成しました。

古いVPS = Ubuntu Server 18.04.6 LTS

新しいVPS = Ubuntu Server 23.10

新しいVPSで通常のメンテナンスを行いました。ご自身で編集してください。

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

次に、Discourse 用の新しい空のディレクトリを作成しました。

sudo mkdir -p /var/discourse

次に Docker をインストールしました。

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

次に、DNS の TTL を 30 分から 10 分に変更しました (GoDaddy で許可される最小値)。

古いサーバーでは、昨夜の Discourse データベースバックアップのローカルコピーをダウンロードしました (ローカルバックアップはいくらあっても困りません)。また、app.yml のコピーもローカル PC にダウンロードしました。

上記の数名が提案したように、「root-to-root」rsync を実行しました。ホスト名ではなく IP アドレスを使用したため、DNS の混乱を避けることができました。また、上記で提案されたように -avz スイッチを使用しました。

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

参考までに、私の discourse フォルダーは 25GB です。

rsync は古いサーバーから新しいサーバーへの転送に約 25 分かかりました。これは、同じ LON1 リージョン内の 2 つの Digital Ocean ドロップレット間でのみ行われました。皆様の経験は異なる場合があります。

rsync 後に再構築を試みたところ、@piratdavid が遭遇したのと同じエラー https://meta.discourse.org/t/move-a-discourse-site-to-another-vps-with-rsync/43812/21?u=richie に遭遇しました。postgres の database system is shut down というエラーです。

そこで、古い VPS でアプリを停止しました。

./launcher stop app

そして、変更点のみを対象に再度 rsync を実行しました。

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

その後、古い Discourse アプリを再度起動し、すぐにメンテナンスモードに入れました。これにより、ユーザーはアクセスでき、通常のメンテナンス警告メッセージが表示されます。

これにより、新しい VPS で作業する時間ができました :blush:

ローカル PC の HOSTS ファイルを更新し、ブラウザの警告や問題なしに新しい VPS の discourse にアクセスできるようにしました。

新しい VPS で以下を実行しました。

./discourse-setup

これにより、app.yml ファイルの RAM と CPU 設定が自動的に更新されました。

その後、新しい VPS でアプリの再構築を行いました。

./launcher rebuild app

簡単なテストを実行し、すべて問題ありませんでした。

DNS を更新し、完了です。

詳細なトピックをありがとうございました。皆様 :smiley:

「いいね!」 4