スナップショットやイメージ保存以外の方法で作成したバックアップからサーバーをリストアするときも、基本的な手順は同じです。
1.事前にしっかりと告知しておきます。
リストアにしろ、移転にしろ、時間が掛かることが多く、何らかのミスで不具合が生じる可能性も常より高いため、周囲のサーバー管理者たちとしても事前告知を気にしていることが多いです。
2.SNSサービスを停止します。
Mastodon, kmyblueの場合は
sudo systemctl stop mastodon-{web,sidekiq,streaming}
Bashスクリプト、systemdを利用してMisskeyを建てていた場合は
sudo systemctl stop example.com(←自分のサーバーのドメイン名)
手動でMisskeyを建てた場合は
sudo systemctl stop misskey
3.バックアップが確保されていることをしっかり確認します。
最低限、PostgreSQLのデータベース。そしてMastodon, kmyblueの場合はサーバー本体の重要設定を記した/home/mastodon/live/.env.productionという隠しファイルが必要です。Misskeyを手動で建てるつもりの場合は、 /home/misskey/misskey/.config/default.yml を確保しておくと楽です。
他、オプションのオブジェクトストレージを使用しなかった場合は、メディアファイルも必要でしょう。
4.移転先のVPSサーバーにPostgreSQLをインストールし、バックアップしたデータベースを取り込んで展開しておきます。
本書の内容に従い sudo -u postgres pg_dumpall | gzip -c > (任意のファイル名).gz という方法でバックアップしていた場合、展開コマンドは以下となります。
gzip -c -d (任意のファイル名).gz > (展開したいファイル名).sql
sudo -u postgres psql -f (展開したいファイル名).sql
5.各プログラムのインストールを行います。
これについては、実際にサーバーを建ててみる、で実行したこととほぼ同じです。
6.セットアップでの動きが異なります。
Mastodon, kmyblueの場合は、初期設定は行わず、バックアップした .env.production を新しいサーバーに移します。
MisskeyのBashスクリプトを使用した場合は、忘れずに Database (PostgreSQL) setting の項目で n を選んでください。
Misskeyを手動で建てた場合は、 .config/default.yml の設定に気を付けて!
7.メディアファイルの保存先にオブジェクトストレージを使用していない場合は、このくらいのタイミングで移行します。
本書の内容に従い tar czf (任意のファイル名).tar.gz (メディアファイルを格納しているディレクトリへのパス) を用いてバックアップを行っていた場合、解凍コマンドは以下となります。
tar -xvf (任意のファイル名).tar.gz
なお、これをどのVPS内ユーザー、どこのディレクトリで行ったかによって、解凍されたディレクトリ・ファイル群の場所が想定と異なる場合があります。 mv コマンドを上手く使えば、解凍後のディレクトリを丸ごと移動させることができます。
一例として、作業用ユーザーの home ディレクトリ内にMastodon, kmyblueなどのメディア格納ディレクトリを展開した場合は、以下のような感じです。
sudo mv /home/(ユーザ名)/home/mastodon/live/public/system /home/mastodon/live/public/.
コマンドの最後が system ではなく . なのは、完全にまっさらなMastodonやkmyblueにはオブジェクトストレージを使うかもしれない関係で、メディアを格納するための system ディレクトリが作成されておらず、存在しないというエラーが返ってくるからです。
同じように、Misskeyに戻す場合は以下のようなコマンドとなる可能性が高いです。
sudo mv /home/(ユーザ名)/home/misskey/misskey/files home/misskey/misskey/.
なお、もしもMisskeyの移転後にメディアファイルが編集できなくなった場合、パーミッションの設定でミスが発生している場合がありますので、以下のように設定してみると良いでしょう。
sudo su - misskey
cd misskey/
chown misskey:misskey files
chmod 755 files
chmod 600 files/*
chmod 644 files/thumbnail-*
chmod 644 files/webpublic-*
8 Mastodon, kmyblueでは、アセットのプリコンパイル(Webクライアント用のJavaScriptファイルをあらかじめ作る操作)や各ユーザーのホームタイムラインを再構築するコマンドがここで必要です。
作業用ユーザーにいる場合は
sudo su - mastodon
cd live
にてコマンドの動く場所まで移動してから、
RAILS_ENV=production bin/rails db:migrate
RAILS_ENV=production bundle exec rails assets:precompile
RAILS_ENV=production ./bin/tootctl feeds build
9.SNSサービスの起動やDNS(つまり今まで通りのドメインと新しいVPSサーバーのIPアドレスとの結び付け)の切り替え、NGINX利用時の設定(CertbotによるSSL用証明書の再取得)などなど行います。
インストールしたサービスによって順番が前後するようです。また、もしもNGINXやCertbotに関わる設定ファイルの場所を把握しているならば、それをバックアップして新しい環境に持ってくることで手間が減るとのことです。新規にサーバーを建てる方法の中からそのまま踏襲することでも、再設定することは可能です。
10.ブラウザなどから、サーバーが上手く動いていることを確認します。