AI Agentに自由な開発環境を渡す、Proxmox+LXCで。

元記事:Zenn
ブクマ日時:2026-07-08 00:19:08 UTC
はてブ数:41 users
タグ:あとで読む

📝 記事の概要

AIエージェントに「好き勝手できる開発環境」を安全かつ効率的に提供するため、Proxmox上でLXCコンテナを使って使い捨てVMをポコポコ作って捨てる手法を解説した実践的な記事。著者のuzulla氏が実際の運用フローを詳細に共有している。

🔑 重要ポイント

なぜLXCなのか

なぜProxmoxなのか

テンプレート作成フロー

  1. Debian公式CTテンプレートをダウンロード
  2. 1台起動してカスタマイズ(Docker、SSH鍵、作業ユーザー、mise等)
  3. Docker用にFeaturesで keyctlNesting を有効化(ここがハマりポイント)
  4. SSHホスト鍵を削除してテンプレート化
⚠️ 罠ポイント: Debianテンプレートは鍵を消しただけだとクローン起動時に再生成されない。sshd-keygen.serviceConditionFirstBoot=yes を外す必要がある。
# コンテナ内で: sshd-keygen.service の条件を外す SYSTEMD_EDITOR="tee" systemctl edit sshd-keygen.service << 'EOF' [Unit] ConditionFirstBoot= EOF # 鍵を消してシャットダウン rm -f /etc/ssh/ssh_host_*_key* shutdown -h now # Proxmox側でテンプレート化 pct template 221

コンテナのポンポン作成

# リンククローンで一瞬で立ち上がる pct clone 221 322 --full 0 --hostname some-test-host pct start 322

--full 0 でリンククローン指定。テンプレートのディスクを共有しつつ差分のみ保持。秒で完成。

🚨 工夫ポイント:どうログインするか

各VMはDHCPでIPが振られるためIP不明。Tailscaleを一台一台入れるのは面倒。そこで Proxmoxを踏み台(Bastion)として使う

# ~/.ssh/config Host pxmx User root HostName xxx.xxx.xxx.xxx Host dev-* User jhon ProxyCommand ssh -q pxmx "pct exec $(echo %h | cut -d'-' -f2) -- nc localhost 22"

ssh dev-322 と叩くと、ProxmoxにSSH接続 → pct exec 322 -- nc localhost 22 でコンテナ内のsshdにパイプ接続。ホスト名からVMIDを抽出。TailscaleはProxmox1台だけでOK

セキュリティ設計

miseによるツール管理

ランタイム管理ツール「mise」で claude-code、gh、rust、go、node、codex等を管理。タスクランナーとしても活用。

スナップショット・バックアップ

捨て方

pct stop 322 pct destroy 322 # 止めておくだけでもOK(後日 pct start で再開)

💡 まとめ

Proxmox + LXCによる使い捨て開発環境は、AIエージェントに安全で自由な環境を提供する実用的なソリューション。リンククローンで秒単位の作成、踏み台SSHでIP管理不要、スナップショットで安全な実験、そして簡単な破棄。エージェントがイキイキと動ける環境を低コストで量産できる仕組み。