本日、新しいVPSに移行したのですが、最近多くの人がアップデート時に古いバージョンのオペレーティングシステムでブロックされているようなので、私の経験を共有したいと思います ![]()
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 で作業する時間ができました ![]()
ローカル PC の HOSTS ファイルを更新し、ブラウザの警告や問題なしに新しい VPS の discourse にアクセスできるようにしました。
新しい VPS で以下を実行しました。
./discourse-setup
これにより、app.yml ファイルの RAM と CPU 設定が自動的に更新されました。
その後、新しい VPS でアプリの再構築を行いました。
./launcher rebuild app
簡単なテストを実行し、すべて問題ありませんでした。
DNS を更新し、完了です。
詳細なトピックをありがとうございました。皆様 ![]()