を動かしているサーバのお世話状況について書く。1年間でやってきたことのまとめでもある。
mkosi >= 15 むけの mkosi-files 対応
ということがあり、v15.1 以降の mkosi は systemd-repart に依存することとなり、その結果使い勝手が大きく変わることになった。後方互換性のない変更がかなり入っているので単にバージョンを上げるだけでは mkosi によるイメージ作成がコケる事態になってしまう。 これで何が困るかというとわたしは https://github.com/nosada/mkosi-files というものをメンテしており、こいつで作成されるコンテナイメージを使い動かしている systemd-nspawn コンテナを前述2サイトの運用に使っている。新しめの mkosi でイメージが作れないと大変困る。この為の対応を以下でいれた:
PR としては大変酷い内容なので、わざわざ見にゆく価値は無い。
なお https://github.com/systemd/mkosi/blob/main/mkosi/resources/mkosi.md の変遷を見てもらうとわかるのだが、systemd-repart に切り替わった直後の mkosi ではかなりの量の read-only 扱いのディレクトリがあり、これによって mkosi.build や mkosi.postinst を使うかたちでのコンテナイメージいじりがかなり厳しくなった。 このへんの制約をなんとかする為に手間を割くのも面倒だったので systemd-nspawn / mkosi によるコンテナ運用を止して OCI 的なコンテナ運用に切り替えようかなあと思った時期もあったのだが、しばらく様子をみていたところ read-only 扱いのディレクトリが減ってゆき、結果として前述 PR で対処ができるようなレベルにはなった。一安心。
サーバの作り直し
いろいろな事情で前掲2サイトを動かしているサーバ(https://www.digitalocean.com/ の droplet。要は VM)は定期的に再起動させている。ある日そんな感じで再起動させたところ、起動後 2 -- 3 分すると CPU が刺さって SSH できなくなるという事態に陥った。トラブルシュートも面倒だったのでデータを退避させて新サーバに移行した。以下が役に立った:
移行完了後に旧サーバは消したのだが、足掛け5年程度同じ VM を使い続けていたらしい。今までお疲れさまでした。
AUR パッケージのメンテナンス作業を GitHub Actions 化
といったようなことをしており、その為に使っているものが以下のようにある:
いままでこいつらは前述2サイトを動かしているサーバ内で docker コンテナとして動かしていたのだが、サーバを作り直したこともあり、良い機会だったので GitHub Actions 化してサーバ内で同居させていた状態を解消させた:
- https://github.com/nosada/update-pkgbuild-on-aur/actions/workflows/run.yaml
- https://github.com/nosada/check-aur-pkg-version/actions/workflows/run.yaml
ときどきコケているようだが(本稿を書くにあたり確認して気付いた)おおむね問題なく動いているようなので、まあそんなもんだろう。