コンテンツにスキップ

閉じたネットワークに入れる

インターネットに出られないホストにも、Agent Fleet を入れられます。イメージ・TLS・エージェントの CLI・図のアイコンを、外に頼らずに用意します。 コマンドは compose の手順書の「Air-gapped install」 にあります。

あなたがやること 起きること
イメージを社内のレジストリにミラーするか、手で持ち込む ホストがレジストリに届かなくても、配備が起動する
TLS を自己署名か社内 CA にする Let’s Encrypt に届かなくても、Console が HTTPS で開く
エージェントの CLI を焼き込んだワークスペースのイメージを使う ワークスペースが起動のときに CLI を取りに行かない
図のアイコンをキャッシュに入れておく .drawio の図が、アイコン付きで描かれる

イメージは GHCR で配っていて、リリースにイメージの tar は付いていません。レジストリに届かないホストでは、次のどちらかにします。

方法 向いているとき
ghcr.io/k-k1/agent-fleet/* を社内のレジストリにミラーし、REGISTRY をそこに向ける 社内にレジストリがある。docker compose pull がそのまま使え、保守が軽い
ネットワークのあるマシンで release.sh --save を実行してイメージを書き出し、対象のホストで load-images.sh で読み込む レジストリがない。アップグレードのたびにビルド・コピー・読み込みを繰り返します

手で持ち込んだイメージは agent-fleet/{control-plane,workspace}:<版> という名前になります。対象のホストの .env では REGISTRY=agent-fleet にして、名前を合わせます。

閉じたネットワークからは Let’s Encrypt を使えません。導入 の tls internal(自己署名)に切り替えるか、社内 CA の証明書を使います。

既定のワークスペースのイメージは軽量版で、エージェントの CLI を含まず、コンテナの起動のときにイメージの versions.json で決まった版を入れます。外に出られないホストでは、これが失敗します。

  1. CLI を焼き込んだイメージをビルドします(BAKE_AGENT_CLIS=1)
  2. WS_ENV で CLAUDE_INSTALL=0 を渡し、起動のときの Claude の取得を止めます

同梱の drawio ビューアはオフラインでも図を描けますが、ベンダーのアイコン(AWS・GCP・Azure・Kubernetes・ラック機器など)は同梱していません。 ふだんは Control Plane が初めて使うときに取ってキャッシュしますが、外に出られないと取得に失敗し、図は枠と色とラベルだけに、黙って劣化します。

避けるには、持ち込んだディレクトリからキャッシュを埋めておきます。

  1. 外に出られるマシンで、drawio のリポジトリを 1 回クローンします(v31.1.8)
  2. drawio/src/main/webapp/stencils を持ち込みます
  3. Control Plane のホストで control-plane drawio-preseed --from <ディレクトリ> を実行します
ターミナルウィンドウ
control-plane drawio-preseed --from /path/to/stencils # 既定の束:49 件、17.0 MB
control-plane drawio-preseed --from /path/to/stencils --all # 全部:203 件、40.8 MB
  • 既定の束は、クラウドとインフラの図、一般の作図に使うものです。何が入り何が入らないかは、--list で先に確かめられます
  • 1 件ずつ同梱の台帳の SHA-256 で照合してから置くので、持ち込みの経路を信用できなくても中身は保証されます
  • キャッシュは内容で名前が決まり、索引のファイルがありません。埋めたディレクトリを tar にして別のホストに運んでも同じです

エージェント向け

この指示をエージェントに送ると、このページを読ませられます。

https://agent-fleet.org/docs/ja/operate/run/air-gapped/index.md を読んで