こんにちは。
Misskeyのサーバー変更作業したのですが、またそんな事態になった時のために(滅多にないはずなのですが…)
相変わらず自分用程度の感覚で書いてるのでほかの人が見ても全く参考にならないです。はい。
2回やってるので2回分書きます。
というか2回目がヤバかった。
1回目(自宅鯖→自宅鯖)
そもそもなぜ移行?
別記事で問題にしたが、最初設置した自宅サーバーがあまりにオンボロすぎて、1日1回ほどの頻度でいきなりフリーズという事態が発生したため。
HDDフルアクセスのままフリーズは最悪HDD寿命の場合もあるというので即座に移行を決断。
尚そのHDDは最悪の場合のバックアップとして安置してある。
PCはそのままでSSDにするのも考えたが、入れ替えるのすら面倒という怠惰な性格が発動したのと、純粋にこのPCのままの運用は良くないと判断したためPC自体の移行も決定。
##移行方法
最初はHDDまるごとクローンしようと思ったが、MongoDBさえ移行してあればいいらしいのでその方針に変えた。
必要なバックアップデータをわかりやすい場所に配置して、旧HDDを新PCに直接接続して引っ越しする。
自宅鯖ならではですかね。
MongoDBのリストア(旧PC)
前提としてDB名はmisskeyで認証無しです。
わけでまぁ簡単です
mongodump -d misskey --out dump
で、旧PCでの主要な作業はこれだけ。
あとはMisskeyのコンフィグ、藍Bot(うちの場合衣亜だけど)のコンフィグとメモリファイルをわかりやすい場所にコピーするぐらい。
新PC準備(新PC)
OSは旧PCに合わせてUbuntu系を。
最低限の初期設定は済ませる。
本来はMisskey導入直前にやることだが、今回はこのタイミングでNginxを導入。
やれるなら公開フォルダにメンテナンス中のページでもおもむろに置いておく。
元々不安定で長期停止がザラだったのでもはや本当に申し訳程度にしかならない。
旧PC停止(旧PC)
新PCで同じローカルip使うので衝突防止にここでシャットダウン。まぁ設定変えるだけでも良いけど今回の手段では結局このあとHDD取り出すのでシャットダウンは必然的に。
新PCにMisskeyとか入れる(以降すべて新PC)
先にローカルipセット。
あとは旧HDD取り出すのでを接続。
あとは基本的に今までのメモ書きとか同様にMisskeyやNginxリバースプロキシを新規構築する。
コンフィグとか旧HDDに置いておいたやつをここで流用。つまりコピペ。
MongoDB入れたタイミングで旧HDD取り出すのでからリストア
mongorestore <PATH>
こうします。これでデータは復帰...したよね?
リストア終わったらいつもの
最後にいつものyarn操作(インストールとビルド)やってデーモン設定前に念のため起動して、問題なければまた停止してsystemd設定してまた起動します。
以上です。
2回目(GCP→自宅鯖)
で、問題はここから。
移行理由
破産フラグ。
以上。
移行方法
基本的には1回目同様。DBバックアップまではできた。
発生した問題
DBバックアップファイル、どう回収する?
解決法(=オチ)
SFTPで鍵使えばよかっただけでしたとです。
そういうの食わず嫌いしてた私は実行するまでに1時間ロスしました。
次の問題
nginx一回消してたからかなんなのか、起動しない。
解決法
410送信用にApache入れっぱだった。そりゃぁ起動できるわけ。
その後勘違いしてコンフィグが吹っ飛んでおり別の意味で地獄になった。
そのオチについては、設定自体やらかしまくってた上に、misskey.nginx入ってるフォルダを読み込ませてなかった。
だいたいこれが6時間に及ぶ大手術の原因である。
最終作業
やはり1回目同様、リストアして、新Misskeyビルドして、ドメイン設定変えて、起動した。
変動IPなのでMyDNS使った。
以上。