機能 #441
完了apt リポジトリのキャッシュサーバを立てる
100%
説明
いいかげん Debian ベースの LXC コンテナが増えてきたので kagamidai 内にキャッシュサーバを持つべきであろう。
nop_thread さんが4ヶ月前に更新
- ステータス を 新規 から 進行中 に変更
- 担当者 を nop_thread にセット
- 前回確認日 を 2024/07/31 にセット
無難に apt-cacher-ng とかでいいか。
ただ、 機能 #443: HTTP/S キャッシュプロキシを立てる (主に CI ワーカーノード用) の事情もあるので CI コンテナ内から apt-get するような場合を考えると (そんなことないか) 汎用キャッシュプロキシの方が良いかもしれない。
nop_thread さんが4ヶ月前に更新 · 編集済み
プロキシが落ちているときにフォールバックさせるには、 Acquire::http::ProxyAutoDetect
という undocumented なオプション (!?) が有効で、プロキシを検出してアドレスを返すスクリプトを指定できるのでこれを使ってダウン検出をすれば良いらしい。
そんなことをせずとも、いざというときは ansible とかで apt のプロキシ設定を無効化して配ってやればそれで済むといえば済むので、わざわざデプロイする設定の複雑度を上げるほどのことかというと微妙かもしれないが。
nop_thread さんが4ヶ月前に更新 · 編集済み
nop_thread さんは #note-2 で書きました:
プロキシが落ちているときにフォールバックさせるには、
Acquire::http::ProxyAutoDetect
という undocumented なオプション (!?) が有効で、
こんなことを書いたが、 AptCacherNg - Debian Wiki で普通に Acquire::http::ProxyAutoDetect
が紹介されていた。
もう少し調べてみると Acquire::http::Proxy-Auto-Detect
という新しい項目があるらしく (https://manpages.debian.org/bookworm/apt/apt-transport-http.1.en.html#Automatic_Proxy_Configuration)、たぶんそちらを使うべきなのでハイフンなしの ProxyAutoDetect
が "undocumented" に見えたのだろう。
(あるいは当時は本当に undocumented だったのかもわからないが。)
This option takes precedence over the legacy option name Acquire::http::ProxyAutoDetect.
—apt-transport-http(1) — apt — Debian bookworm — Debian Manpages
そういうことなら普通にダウン検出つきで簡単なスクリプトを用意してデプロイしてよさそうだ。
nop_thread さんが4ヶ月前に更新 · 編集済み
mDNS と auto-apt-proxy で自動検出する手もあるようだが、べつにそこまでしなくていいか。
DNS まわりにまで影響を広げたくないし、静的に設定できず誰でも自称キャッシュプロキシになれるというのもあまり気持ちよくない (一応 Debian のリポジトリなら暗号署名がついているから中継者がいようが改竄等の懸念はないはずだが)。
nop_thread さんが4ヶ月前に更新 · 編集済み
apt-cacher-ng reads all files matching *.conf in alphabetical order and merges the contents.
これが知りたかった (acng.conf そのものには記載がなくzz_debconf.conf
で仄めかされているだけだった)。
しかしデフォルトが acng.conf
に入っていると 50-foobar.conf
みたいなのが先に読まれてしまうな。z_50-foo.conf
とかにするか? (うーん……)
nop_thread さんが4ヶ月前に更新
- 進捗率 を 0 から 70 に変更
試験的に Acquire::http::Proxy
直指定のクライアント設定を導入してみて、うまくキャッシュサーバを通っていることを確認した。
あとはダウン検出だけ。
nop_thread さんが4ヶ月前に更新
- 進捗率 を 70 から 90 に変更
ダウン検出がうまくできるようだったので、 kagamidai 内の全アプリコンテナにデプロイした。
問題なさそうなので Proxmox VE の物理ノード含めて展開する。