プロジェクト

全般

プロフィール

機能 #441

完了

apt リポジトリのキャッシュサーバを立てる

nop_thread さんが4ヶ月前に追加. 4ヶ月前に更新.

ステータス:
終了
優先度:
通常
担当者:
開始日:
期日:
進捗率:

100%

一時中断:
いいえ
pinned:
いいえ
確認予定日:
前回確認日:
2024/07/31
管理外残件あり:

説明

いいかげん 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ヶ月前に更新 · 編集済み

Advanced Server Configuration

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 の物理ノード含めて展開する。

nop_thread さんが4ヶ月前に更新

  • ステータス進行中 から 終了 に変更
  • 進捗率90 から 100 に変更

完了。

他の形式にエクスポート: Atom PDF