Quadlet化した

keaにどハマりした件もそうだが、結局のところ、podman composeを使うのが悪いという結論に至り、自宅鯖はQuadlet化してsystemdで管理するようにした。この方が、systemd sliceとの親和性も高くて、リソース管理も楽。

例えばこのウェブページは、以下のように定義されている。

[Unit]
Description=WordPress site for rio.st (Quadlet, canonical replacement for wordpress-rio-st-compose.service)
Documentation=man:systemd.target(5)
Documentation=man:podman-systemd.unit(5)

Wants=network-online.target
Wants=lan-addresses-ready.service
After=network-online.target
After=lan-addresses-ready.service

Wants=wp-rio-st-db.service
After=wp-rio-st-db.service
Wants=wp-rio-st-redis.service
After=wp-rio-st-redis.service
Wants=wp-rio-st.service
After=wp-rio-st.service
Wants=wp-rio-st-nginx.service
After=wp-rio-st-nginx.service

[Install]
WantedBy=multi-user.target

Nginx、WordPress、MariaDB、Redisに依存していて、それぞれの実態はPodmanのコンテナ。

network-onlineは当然なのだけど、lan-addresses-readyは1枚のNICに、IPv4アドレス2つとv6アドレス1つを付けてて、これが同時に上がってこないためにこうしてある(keaの対策で入れたやつ)。

ということで、RHEL10なら素直にQuadletを使おう。

なお、1件だけQuadletの不具合というか、「たぶんエラーになるから、それは指摘してくれても良いんじゃないの?」というPRをしておいた。