Communityコーディング&開発github.com

bitranox/infra-proxmox

Proxmox VE(仮想化環境)の設定、管理、トラブルシューティング(インストール、ホスト管理、クラスタ、VM、コンテナ、ストレージ、Ceph、SDN、ファイアウォール、ユーザー管理、HA、バックアップ、通知、CLIツール)に関する包括的なリファレンスです。Proxmox VE 9.1.2に対応しています。

infra-proxmox とは?

このスキルは、Proxmox VE(バージョン9.1.2)の運用を効率的かつ安全に行うための包括的なリファレンスを提供します。ホスト管理、クラスタ構成、仮想マシン(VM)やコンテナ(CT)の管理、ストレージ、Ceph、SDN、ファイアウォール、ユーザー管理、高可用性(HA)、バックアップ、通知など、Proxmox VEの全領域を網羅しています。また、`pvecm`、`qm`、`pct`、`pvesh`、`vzdump` などの主要なCLIツールの使用方法も含まれています。このスキルは、AIエージェントがノード障害やネットワーク問題などの障害に遭遇した際に、安全で回復力のある運用を実現するためのガイドラインを提供します。特に、複数ノードに影響を与える操作前の明示的な確認、クォーラムチェック、バックアップの確認、HAステータスの確認など、安全プロトコルが重視されています。また、操作を実行する前に、堅牢なレビュープロトコル(スティールマン/レッドチーム評価)を実施することで、停止やデータ損失のリスクを最小限に抑えます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bitranox/bitranox-skills/tree/HEAD/plugins/bitranox/skills/infra-proxmox

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Proxmox VE 運用リファレンス (リリース 9.1.2)

ノード、ゲスト、サービスはダウンしたり、到達不能になったり、操作中に消えたりすることがあります。決して稼働していると想定せず、実際の状態を再クエリし、タイムアウト内で再試行し、グレースフルに機能を縮退させてください。自己修復パターンについては、bitranox:coding-resilience を参照してください。


1. クラスタ設定 (自動検出)

チェック項目コマンド
環境pveversion --verbose (カーネル、pve-manager、corosync、qemu-server などの全コンポーネントバージョン)
ノードpvecm nodes (数、名前、ID) / pvecm status (IP、クォーラム、トランスポート、リンク状態)
クォーラムpvecm status -- "Quorate" フィールドを確認。しきい値: floor(総ノード数/2) + 1
API アクセスpvesh (ローカル CLI)、pveproxy (HTTPS :8006)、REST API。スクリプトでは --output-format json を使用
ストレージpvesm status (アクティブなストレージ) / cat /etc/pve/storage.cfg (全設定)
ネットワークpvesh get /nodes/{node}/network --output-format json / cat /etc/network/interfaces
サブスクリプションpvesubscription get (ステータス確認) / pvesubscription set <key> (キー適用)

2. 安全プロトコル

ルール詳細
破壊的な一括操作の禁止複数ノードに影響するコマンド(再起動、シャットダウン、一括VM停止)は、ユーザーの明示的な確認が必要です。
クォーラムチェックノードの再起動/メンテナンス前: pvecm status。(現在 - 1) < floor(総数/2) + 1 の場合は中断。2ノードクラスタの場合は QDevice を確認。
事前のバックアップVM設定変更やアップグレードの前に、バックアップが存在することを確認: pvesm list {storage} --content backup
強制削除の禁止リソースIDを確認せずに --purge や --force を使用しない: qm config {vmid} または pct config {vmid}
HA ステータスHAリソース変更前: ha-manager status -- マイグレーションやフェンシングが進行中でないことを確認。
ネットワーク変更常にドライランを先に実行: ifreload -a -n (ifupdown2 には --test はありません)。ゲストトラフィックを運んでいるブリッジで ifdown を実行しない。リモート適用とDHCP/ボンド/WLANのトラップ: references/host-networking.md を参照。
Corosync 設定まずコピーを取り、コピーを編集し、現在の設定をバックアップしてから、移動する。常に config_version をインクリメントする。
ストレージ操作ストレージ削除前: pvesm list {storage} で、そのストレージを参照しているVM/CTがないことを確認。
保護フラグqm set {vmid} --protection 1 / pct set {vmid} --protection 1 で誤削除を防止。
ZFS プロパティの一括変更PVE はゲストの設定済みディスクサイズをデータセットの refquota として保存します。全データセットにわたって refquota/refreservation をクリアする一括変更は、すべてのゲストのディスク制限を黙って削除します。一方、pct config は依然として古いサイズを報告するため、1つのコンテナでプールを満たしてしまう可能性があります。subvol- または vm- で始まるリーフ名は除外してください。

3. アクションレビュープロトコル

必須。 Proxmoxノード、VM、コンテナ上で直接実行されるすべてのアクション(コマンド、設定変更、サービス操作)の前に、このレビューを実行してください。

例外: 読み取り専用操作(ログの読み取り、ステータスの問い合わせ、何も変更せずに情報を収集する)は安全とみなされ、このレビューなしで即座に実行できます。

このゲートは opus で実行してください。 このスティールマン/レッドチーム判定は、稼働中のインフラストラクチャへの変更をゲートします。弱いモデルは、停止、データ損失、クォーラムリスクを過小評価します。レビューは opus で行います。ピン留めされた opus サブエージェントに medium の努力レベルで委任するか(レビューディスパッチ、bitranox:process-agents-subagent-driven-development の「Review dispatches」を参照)、インラインで保持する場合は、実行前にモデル切り替えまたは続行のオプションを提供してください。未知の下位ティアでこのゲートを実行しないでください。bitranox:process-agents-subagent-driven-development(「The session model is fixed」/「Concrete tiers」)を参照してください。

3.1 スティールマンプロンプト

計画されたアクションまたは設定が、最も理想的な形で Proxmox サーバー上で実行されることを検討してください。このアクションが、最も安全で、最も効率的で、最適に統合されたソリューションであると想像してください。このアクションが、システム管理の目標を完全に達成し、安定性を高め、ユーザーニーズを完全に満たす方法を明確に示してください。

3.2 レッドチームプロンプト

経験豊富な管理者またはセキュリティアナリストのように、計画された Proxmox アクションをレビューし、潜在的なリスクを明らかにしてください。設定の潜在的な弱点を特定し、停止リスク、データ損失、または意図しない副作用を考慮してください。最悪のシナリオの下で計画の堅牢性をテストし、プレッシャーがかかっても安全で信頼できることを確認してください。

3.3 決定

レッドチームレビューの最後に、特定されたリスクまたは弱点が、計画されたアクションを停止するほど深刻かどうかを評価してください。アクションが安全で、論理的で、堅牢であると思われる場合は、すぐに実行できます。重大な不確実性が残る場合は、ユーザーに明示的に確認を求める必要があります。明確な決定で締めくくります:「アクションを実行」 または 「ユーザーに確認を求める」。


4. コードと応答スタイル

  • 応答: 短く、正確で、CLI 中心(pvesh、pvecm、pvesm、qm、pct、ha-manager、vzdump、pvesr、pvenode、pveceph、pveum、pveam)。
  • トラブルシューティング: 常に最初にログを照会: journalctl -u pvedaemon -n 50、pvenode task list --errors 1、/var/log/pveproxy/access.log。
  • JSON 優先: --output-format json または json-pretty を使用。スクリプトによる解析には --noborder --noheader を使用。
  • ロールバック計画: すべての変更にはロールバックを含めること。最初に設定ファイルをバックアップする。ストレージ/VMを変更する前にバックアップが存在することを確認する。

5. クラスタサイズ別クイックテーブル

サイズ動作
シングルノードクラスタ操作なし。HAなし。ローカルストレージと外部バックアップに注力。
2ノードQDevice を強く推奨。これがない場合: 1ノード喪失 = クォーラム喪失。緊急時は pvecm expected 1。
3ノード以上フルHA。floor((N-1)/2) の障害に耐性(3ノード: 1、5ノード: 2)。

ノード数の検出: pvecm nodes | grep -c '^\s*[0-9]'


6. トラブルシューティングクイックリファレンス

問題診断
クラスタにクォーラムがないpvecm status > "Quorate: No"。接続性を確認、systemctl status corosync。緊急時: pvecm expected 1。
ノードが参加しないUDP 5405-5412、時刻同期、SSH (TCP 22) を確認。試す: pvecm add {IP} --fingerprint {SHA256}。
VM が起動しないロックを確認: qm unlock {vmid}。設定を確認: qm config {vmid}。ログ: journalctl -u pvedaemon -n 100。
CT が起動しないロックを確認: pct unlock {vmid}。設定を確認: pct config {vmid}。ログ: journalctl -u pvecontainer -n 100。
ストレージが利用できないpvesm status でアクティブか確認。systemctl status pve-storage。重要でない場合は pvesm set {storage} --disable。
HA リソースの障害ha-manager status、ha-manager resource list、journalctl -u pve-ha-manager -n 100。
バックアップ/復元の失敗tail -100 /var/log/vzdump.log。ストレージの空き容量を確認: df -h。
Ceph の問題ceph -s、ceph osd tree、ceph health detail。OSD: systemctl restart ceph-osd@{id}。
ファイアウォールの問題pvefw status、pvefw rules、pvefw log。ログ: /var/log/pve-firewall.log。
ユーザー/パーミッションの問題pveum user list、pveum acl list、pveum user modify {user} --enable。
SDN の問題pvesh get /cluster/sdn/zones、pvesh get /cluster/sdn/vnets。ログ: journalctl -u pve-sdn -n 100。
通知の問題pvenotify status、pvenotify test。設定: cat /etc/pve/notifications.cfg。

7. Proxmox VE CLI リファレンス

7.1 ノード管理

  • pvenode {command}: stop、reboot、task list、config set(DNS、NTP、その他ノード設定)
  • pvesh {path} {method}: 任意の API エンドポイント呼び出し(get、post、put、delete)

7.2 仮想マシン (VM) (qm)

  • qm list: 全VM一覧
  • qm config {vmid}: VM設定表示 (--current で実行時設定)
  • qm start/stop/shutdown/reboot/reset {vmid}: VM電源管理
  • qm suspend/resume {vmid}: サスペンド/レジューム
  • qm migrate {vmid} {target-node}: ライブマイグレーション
  • qm clone {vmid} {new-vmid}: リンククローン
  • qm template {vmid}: テンプレート変換
  • qm set {vmid} --{option} {value}: 設定変更 (例: --memory 4096、--cores 4)
  • qm unlock {vmid}: ロック解除
  • qm disk resize {vmid} {disk} {size}: ディスクリサイズ
  • qm monitor {vmid}: QEMUモニター
  • qm terminal {vmid}: VNCコンソール

7.3 コンテナ (CT) (pct)

  • pct list: 全CT一覧
  • pct config {vmid}: CT設定表示
  • pct start/stop/shutdown/suspend/resume {vmid}: CT電源管理
  • pct migrate {vmid} {target-node}: マイグレーション
  • pct clone {vmid} {new-vmid}: クローン
  • pct template {vmid}: テンプレート変換
  • pct set {vmid} --{option} {value}: 設定変更 (例: --memory 2048、--swap 1024)
  • pct unlock {vmid}: ロック解除
  • pct resize {vmid} {disk} {size}: ディスクリサイズ
  • pct enter {vmid}: CT内に入る (シェル)
  • pct push/pull {vmid}: ファイル転送

7.4 ストレージ (pvesm)

  • pvesm status: ストレージステータス
  • pvesm list {storage}: ストレージ上のコンテンツ
  • pvesm add/remove/set {storage}: ストレージ管理
  • pvesm alloc/free {storage} {vmid}: イメージの割り当て/解放
  • pvesm import/export : インポート/エクスポート

7.5 HA 管理 (ha-manager)

  • ha-manager status: 全体ステータス
  • ha-manager resource list: 管理対象リソース一覧
  • ha-manager resource add {vmid}: リソース追加
  • ha-manager resource remove {vmid}: リソース削除
  • ha-manager resource migrate {vmid} {target-node}: マイグレーション
  • ha-manager group list/set: HAグループ管理
  • ha-manager crm-command: 手動CRMコマンド送信

7.6 バックアップ (vzdump)

  • vzdump {vmid}: 単一VM/CTバックアップ
  • vzdump --all: 全VM/CTバックアップ
  • vzdump --mode snapshot/stop/suspend: バックアップモード
  • vzdump --compress --storage {storage}: 圧縮と保存先指定
  • vzdump --mailto {email}: 通知

7.7 Ceph (pveceph)

  • pveceph status: Cephクラスタステータス
  • pveceph osd list/create/remove: OSD管理
  • pveceph pool create/ls/delete: プール管理
  • pveceph mon create: MON追加
  • pveceph mgr create: MGR追加
  • pveceph mds create: MDS追加
  • pveceph fs create: CephFS作成
  • pveceph purge: Ceph完全削除

7.8 ユーザー管理 (pveum)

  • pveum user list/add/modify/remove: ユーザー管理
  • pveum group list/add/modify/remove: グループ管理
  • pveum acl list/add/remove: ACL管理
  • pveum role list/add/modify/delete: ロール管理
  • pveum auth list/modify: 認証ドメイン管理
  • pveum ticket: チケット生成

7.9 ファイアウォール (pvefw)

  • pvefw status: ファイアウォールステータス
  • pvefw start/stop/restart: ファイアウォール制御
  • pvefw rules: ルール一覧
  • pvefw log: ログ表示
  • pvefw reload: 設定再読み込み

7.10 SDN (Software Defined Network)

  • pvesh get /cluster/sdn/zones: ゾーン一覧
  • pvesh get /cluster/sdn/vnets: VNet一覧
  • pvesh get /cluster/sdn/subnets: サブネット一覧
  • pvesh get /cluster/sdn/controllers: コントローラー一覧
  • pvesh post /cluster/sdn/zones/{zone}/status: ゾーンステータス

7.11 その他ツール

  • pvesr: リモートマイグレーション/レプリケーション
  • pveam: アプライアンス管理 (テンプレートダウンロードなど)
  • pveproxy: プロキシ設定
  • pvenet: ネットワーク設定
  • pvers: バージョン情報

8. Proxmox VE の設定ファイル

ファイル説明
/etc/pve/storage.cfgストレージ設定
/etc/pve/ceph.confCeph設定
/etc/pve/datacenter.cfgデータセンター設定
/etc/pve/nodes/{node}/configノード設定
/etc/pve/firewall/cluster.fwファイアウォールルール (クラスタレベル)
/etc/pve/firewall/host.fwファイアウォールルール (ホストレベル)
/etc/pve/firewall/VM/CT個別ファイアウォール設定
/etc/pve/haHA設定
/etc/pve/notifications.cfg通知設定
/etc/pve/corosync.confCorosync設定
/etc/pve/pve-root-ca.pemCA証明書
/etc/pve/priv/storage.pemストレージ認証情報
/etc/pve/priv/known_hosts既知のホスト
/etc/pve/priv/authorized_keys公開鍵

9. Proxmox VE のログファイル

ログ説明
/var/log/pvedaemon.logpvedaemon ログ
/var/log/pveproxy/access.logpveproxy アクセスログ
/var/log/pveproxy/error.logpveproxy エラーログ
/var/log/pve-firewall.logファイアウォールログ
/var/log/pve-ha-manager.logHAマネージャーログ
/var/log/vzdump.logバックアップログ
/var/log/syslogシステムログ
/var/log/messagesメッセージログ
/var/log/ceph/Ceph ログ
/var/log/pve-sdn.logSDN ログ

10. Proxmox VE のベストプラクティス

  • 定期的なバックアップ: vzdump で定期的なバックアップをスケジュール。
  • 監視: pvenode task list、pvesm status、ceph -s で定期的に監視。
  • アップデート: apt update && apt dist-upgrade で定期的に更新。
  • セキュリティ: pveum でユーザーアクセスを制限。ファイアウォールを有効化。
  • パフォーマンス: qm set {vmid} --memory {size}、pct set {vmid} --memory {size} でリソースを調整。
  • ドキュメント: 設定変更はすべてコメント付きで文書化。
  • テスト: 本番環境に適用する前に、ステージング環境でテスト。
  • フォールバック: すべての変更にはロールバック計画を用意。

11. Proxmox VE API リファレンス (pvesh)

pvesh は Proxmox VE REST API へのコマンドラインインターフェースです。

基本的な使い方:

pvesh get /nodes/{node}/status --output-format json
pvesh create /nodes/{node}/qemu --vmid 100 --name test-vm --memory 2048 --cores 2
pvesh set /nodes/{node}/qemu/100/config --memory 4096
pvesh delete /nodes/{node}/qemu/100

便利な API エンドポイント:

エンドポイント説明
/cluster/statusクラスタステータス
/cluster/optionsクラスタオプション
/nodes/{node}/statusノードステータス
/nodes/{node}/qemuVM管理
/nodes/{node}/lxcCT管理
/nodes/{node}/storageストレージ管理
/nodes/{node}/networkネットワーク管理
/nodes/{node}/cephCeph管理
/access/usersユーザー管理
/access/aclACL管理
/cluster/sdnSDN管理
/cluster/firewallファイアウォール管理
/cluster/haHA管理
/cluster/replicationレプリケーション管理
/cluster/notifications通知管理

関連スキル