# [2025/07/26] kmyblue マシン移行作業記録(2回目) ### この移行作業での前提 - 公式ドキュメントの「[新しいマシンへの移行](https://docs.joinmastodon.org/admin/migrating/)」ページに従って作業する - 「基本的な手順」の4は、オブジェクトストレージ使用中のため不要 - 新マシンへのkmyblueインストールは「[自動セットアップスクリプト](https://github.com/kmycode/mastodon/wiki/Installation#自動セットアップスクリプト)」を使用 - これらのドキュメントをしっかり読んでおく ### 環境 - 旧マシン: シンVPS スタンダードプラン 2GB, Ubuntu24.04 - 新マシン: シンVPS 大容量メモリプラン 2GB, Ubuntu24.04 - kmyblueバージョン: v4.4.2+kmyblue.19.3-lts (新旧同じ) - オブジェクトストレージ(R2)使用中 ## 移行作業 ### 新マシン: ```bash # rootユーザ # 新マシンにmastodonユーザが作成される adduser --disabled-password mastodon # 下記の自動セットアップスクリプトの使い方については最新情報を確認すること! /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/kmycode/mastodon/kb_development/install/19.0/setup1.sh)" su - mastodon ./setup2.sh ``` ### rsync下準備 ※ rsyncまわりの理解が浅いです 1. 旧マシンのrootユーザ、mastodonユーザの鍵ペアを`ssh-keygen`で作成しておく 2. 旧マシンのそれぞれのユーザごとの`~/.ssh/id_ed25519.pub`の内容を、新マシンのそれぞれのユーザごとの`~/.ssh/authorized_keys`に追記する 3. 移行作業完了後に追記部分を削除 ```bash # 例: 新マシン rootユーザ # 先に旧マシンのrootユーザの~/.ssh/id_ed25519.pubの内容をクリップボードにコピーして # 新マシンのrootユーザの~/.ssh/authorized_keysにペーストして追記するとか vi ~/.ssh/authorized_keys # mastodonユーザでも同様に su - mastodon # ~/.sshディレクトリが無かったら作る mkdir -m 700 ~/.ssh vi ~/.ssh/authorized_keys ``` ### 旧マシン: ```bash # rootユーザ systemctl stop 'mastodon-*.service' su - mastodon # PostgreSQL DBのダンプ pg_dump -Fc mastodon_production -f backup.dump # ダンプファイルを新マシンにコピー(xxx.xx.xx.xxxは新マシンのIPアドレス) rsync -av ~/backup.dump mastodon@xxx.xx.xx.xxx:~/ # .env.productionファイルを新マシンにコピー rsync -av ~/live/.env.production mastodon@xxx.xx.xx.xxx:~/live/.env.production ``` ### 新マシン: ```bash # mastodonユーザ # 空のDB作成 createdb -T template0 mastodon_production # ダンプファイルからリストア -j2なのは新マシンのコア数が2コアだったため pg_restore -Fc -j2 -U mastodon -n public --no-owner --role=mastodon -d mastodon_production backup.dump # mastodonユーザからrootユーザへ exit # Redisサービス停止 systemctl stop redis-server.service ``` ### 旧マシン: ```bash # mastodonユーザからrootユーザへ exit # Redisサービス停止 redis-cli SAVE systemctl stop redis-server.service # Redis DBを新マシンにコピー rsync -avz /var/lib/redis/ root@xxx.xx.xx.xxx:/var/lib/redis ``` ### 新マシン: ```bash # rootユーザからmastodonユーザへ su - mastodon cd live RAILS_ENV=production bundle exec rails assets:precompile # mastodonユーザからrootユーザへ exit # Nginx設定ファイルの編集(server_nameやSSL証明書まわり) vi /etc/nginx/sites-available/mastodon nginx -t # DNS設定で新マシンのIPアドレスに変更しておく # Mastodonまわりのサービス起動 systemctl daemon-reload systemctl start redis-server systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming systemctl restart nginx # プライベートウィンドウなどでURLにアクセスして動作確認 su - mastodon cd live # HTLの再構築 RAILS_ENV=production ./bin/tootctl feeds build ``` ### 旧マシン: ```bash # Mastodonサービスの自動起動オフ systemctl disable mastodon-web mastodon-sidekiq mastodon-streaming ```