トップ «前の日記(2022/10/15 (土) ) 最新 次の日記(2022/10/17 (月) )» 編集 RSS feed

HsbtDiary


2022/10/16 (日) [長年日記]

git.ruby-lang.org を再構築

Ruby の canonical なコードサーバーである git.ruby-lang.org を AWS の t2 インスタンスから c5a インスタンスに migrate しようと、一旦 stop して再起動しようとしたら、起動しなくなったので 0 から再構築していた。

経緯としては、そもそも c5a に migrate できない AMI のタイプで、しょうがないと c5 や m4 に変更してもダメで、なんなら元々の t2 に戻しても起動しない、という状態になってしまい、これはもう再構築だな、と諦めて使っていた EBS のボリュームを rescue 用に作ったインスタンスに root volume をマウントして各種ファイルをサルベージすることにした。

幸いにしてデータボリュームは分割してたので、新しく作り直す c5a な Debian 11 インスタンスにそのままアタッチして以下の手順で復旧した。

  • ssh_host_key を旧サーバーからコピー
  • apt で cgit をインストール、a2enmod で ssl, cgi を有効化、旧サーバーから apache2 の設定ファイルをコピー
  • apt で certbot をインストールして、証明書取得し直し
  • apt で git をインストール、git ユーザーを作成して、noshell に設定変更してから、データボリュームを /var/git にマウント、HOME を設定して色々参照やコミットできるようにする
  • apt で postfix をインストールして、コミット通知をメーリングリストに送れるようにする
  • sshd_config を旧サーバーを参照してアップデート
  • apt で gpg をインストール、mackerel を curl でインストールしてモニタリング開始

細かいところは省略しているけど、git ユーザーの uid/gid がずれてしまって、後からせっせと chown で直したりしていた。ここも再構築の時に一緒にしておけばよかった。

数時間で再構築できるから、まあねって感じではあるけど、この辺も自動化で行けるところまで用意しておいた方がいいだろうなあ。頑張ろう...。どさくさに紛れて Debian を 10 から 11 にアップグレードできたし、t2 インスタンスから c5a にもできたのでよしとする。