VMs CLI
はじめに
VMs CLI は TerraMaster VMs 仮想化アプリケーションのコマンドライン管理ツールであり、Web 管理画面と同等の照会および運用管理機能を提供します。CLI はローカルの unix socket を介して VMs サービスと通信し、標準化されたコマンドインターフェースと JSON 出力形式を採用しているため、スクリプト、自動運用、二次開発のワークフローに統合できます。
主な特徴
- すぐに利用可能:VMs アプリケーションとともにインストールされるため、追加インストールは不要です
- 柔軟な呼び出し方法:ローカルターミナル、リモート SSH、スクリプト、AI ツールなど多様な呼び出し手段をサポートします
- 対話モードと非対話モードの両対応:管理者の日常メンテナンスにも、スクリプトや自動化タスクにも適しています
- JSON 出力対応:プログラムによる解析と自動化への統合が容易です
- ローカル通信:ローカルの unix socket のみを介して VMs サービスと通信し、外部にポートを公開しません
- 危険な操作の二次確認:仮想マシンの削除、ネットワークの削除などの操作は既定で確認を求めます
クイックスタート
# 在终端中执行(可通过本地终端、SSH、脚本、AI 工具等任意命令行途径)
vms --help
# 查看虚拟机列表
vms vm list
# 查看虚拟机详情
vms vm get <id>
# 以 JSON 格式输出(便于脚本解析)
vms vm list --json
vms vm list の出力例:
NAME GUEST ID STATUS VCPU NUM VRAM SIZE IP
145 09fd98ee-4e2d-4c7a-a95c-8bacab80d322 shutdown 4 2097152 -
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 shutdown 4 2097152 -
1454486 5a0391f2-c545-45eb-8eed-0a104972229b shutdown 4 2097152 -
win101 32ee5a74-de8b-47a9-959d-1725c881ceab shutdown 4 2097152 -
グローバルオプション
以下のオプションはすべてのコマンドに適用されます:
| オプション | 短縮形 | 説明 |
|---|---|---|
--help | -h | コマンドのヘルプ情報を表示します |
--version | -v | バージョン番号を表示します(--json と併用して構造化情報を出力できます) |
--json | - | JSON 形式で出力します |
--yes | -y | 危険な操作の確認プロンプトをスキップします(非対話モードでは必須) |
--debug | - | デバッグ出力を有効にし、詳細な実行過程を表示します |
--socket <path> | - | VMs unix socket のパス、既定は /var/api/VMs.sock |
--timeout <duration> | - | リクエストのタイムアウト時間、既定は 30s |
バージョン情報の例
vms --version
vms CLI v1.0.058
vms --version --json
{
"build": "20260911",
"cli_version": "v1.0.058"
}
実行環境
VMs CLI は VMs アプリケーションとともにインストールされます。アプリケーションを有効にすると、CLI はシステムの既定の PATH ディレクトリにリンクされ、SSH でログイン後すぐに使用できます。
| 項目 | 説明 |
|---|---|
| CLI ファイル | /Volume1/@apps/VMs/bin/vms |
| コマンドパス | /usr/local/sbin/vms(システム PATH に登録済み) |
| 通信方式 | ローカルの unix socket、既定は /var/api/VMs.sock |
| 対象 | 本機にログインした管理者 |
注意事項:
- CLI は本機の仮想マシンを管理するためのもので、CLI による他のデバイスのリモート管理はサポートしていません。
- バックエンドは常に HTTP 200 を返し、コマンドの成否はレスポンス本文の
codeフィールドで判断します。CLI はこれに基づいて終了コードに変換します。 - 危険な操作(仮想マシンの削除、ネットワークの削除、イメージの削除、ストレージの削除)は対話モードで確認を求め、非対話モードでは
--yesを明示的に渡す必要があります。
コマンド一覧表
以下はすべての vms コマンドのクイックリファレンス一覧です:
| 親コマンド | サブコマンド | 機能説明 | 確認要否 | 高リスク |
|---|---|---|---|---|
| vms | --version | バージョン情報を表示 | いいえ | いいえ |
| vms vm | list | すべての仮想マシンを一覧表示 | いいえ | いいえ |
| vms vm | get | 指定した仮想マシンの詳細を表示 | いいえ | いいえ |
| vms vm | list-resource | 仮想マシン作成に使用可能なリソースを一覧表示 | いいえ | いいえ |
| vms vm | logs | 仮想マシンの操作ログを表示 | いいえ | いいえ |
| vms vm | poweron | 仮想マシンを起動 | いいえ | いいえ |
| vms vm | poweroff | 仮想マシンを停止(正常シャットダウン) | はい | いいえ |
| vms vm | force-poweroff | 仮想マシンを強制停止 | はい | ✅ |
| vms vm | reboot | 仮想マシンを再起動 | いいえ | いいえ |
| vms vm | pause | 仮想マシンを一時停止 | いいえ | いいえ |
| vms vm | resume | 一時停止した仮想マシンを再開 | いいえ | いいえ |
| vms vm | autorun | 自動起動を設定 | いいえ | いいえ |
| vms vm | clone | 仮想マシンをクローン | いいえ | いいえ |
| vms vm | export | 仮想マシンを OVA ファイルとしてエクスポート | いいえ | いいえ |
| vms vm | delete | 仮想マシンを削除 | はい | ✅ |
| vms vm disk | list | 仮想マシンの仮想ハードディスクを表示 | いいえ | いいえ |
| vms vm snapshot | list | 仮想マシンのスナップショットを一覧表示 | いいえ | いいえ |
| vms vm snapshot | create | スナップショットを作成 | いいえ | いいえ |
| vms vm snapshot | edit | スナップショットの説明とロック状態を編集 | いいえ | いいえ |
| vms vm snapshot | config | スナップショットに保存された仮想マシン構成を表示 | いいえ | いいえ |
| vms vm snapshot | consistency | スナップショットの整合性をプレビュー | いいえ | いいえ |
| vms vm | link | VNC コンソールの接続情報を取得 | いいえ | いいえ |
| vms network | list | 仮想ネットワークを一覧表示 | いいえ | いいえ |
| vms network | get | 仮想ネットワークの詳細を表示 | いいえ | いいえ |
| vms network | create | 仮想ネットワークを作成 | いいえ | いいえ |
| vms network | update | 仮想ネットワークを更新 | いいえ | いいえ |
| vms network | delete | 仮想ネットワークを削除 | はい | ✅ |
| vms network | list-interfaces | 指定した種類のネットワークインターフェースを一覧表示 | いいえ | いいえ |
| vms network | list-vnics | ネットワーク上の仮想 NIC を一覧表示 | いいえ | いいえ |
| vms network | ovsinfo | OVS が有効かどうかを表示 | いいえ | いいえ |
| vms image | list | イメージを一覧表示 | いいえ | いいえ |
| vms image | edit | イメージ情報を編集 | いいえ | いいえ |
| vms image | delete | イメージを削除 | はい | ✅ |
| vms image | list-vms | このイメージを使用している仮想マシンを表示 | いいえ | いいえ |
| vms repo | list | ストレージを一覧表示 | いいえ | いいえ |
| vms repo | get | ストレージの詳細を表示 | いいえ | いいえ |
| vms repo | update | ストレージ構成を更新 | いいえ | いいえ |
| vms repo | delete | ストレージを削除 | はい | ✅ |
| vms repo | list-volumes | 使用可能なボリュームを一覧表示 | いいえ | いいえ |
| vms repo | list-vms | ストレージ内の仮想マシンを一覧表示 | いいえ | いいえ |
| vms repo | check-running | ストレージ上で実行中の仮想マシンを確認 | いいえ | いいえ |
| vms repo | whether-exist-data | ストレージ内にデータが存在するか確認 | いいえ | いいえ |
| vms setting | get | グローバル設定を表示 | いいえ | いいえ |
| vms collectd | hostinfo | ホストの監視情報を表示 | いいえ | いいえ |
| vms collectd | vminfo | 仮想マシンの監視情報を表示 | いいえ | いいえ |
| vms collectd | storageinfo | ストレージの監視情報を表示 | いいえ | いいえ |
コマンドリファレンス
コマンド内の <id> は仮想マシン ID であり、仮想マシン一覧の出力における GUEST ID に対応します。<network_id>、<image_id>、<repo_id> も同様で、それぞれ vms network list、vms image list、vms repo list で取得できます。
出力例について:
vmsのテーブル出力は、長すぎるフィールド値を固定幅で切り捨てます(省略記号で終わり、ターミナル幅とは無関係です)。たとえば仮想マシン構成のVDISKS、VNICS、ISO IMAGES、およびイメージ名です。そのため、本文書では長いフィールドを扱うコマンドについては完全な--json出力例を示し、それ以外のコマンドにはテーブル出力例を示します。スクリプトで処理する場合も--jsonの統一的な使用を推奨します。
I. 仮想マシンの照会
vms vm list – 仮想マシンの一覧表示
本機のすべての仮想マシンとその基本状態を一覧表示します。
vms vm list [--limit N] [--offset N] [--json]
--limit、--offsetはページングパラメータです- 出力列:名前、仮想マシン ID、実行状態、CPU コア数、メモリサイズ(単位 KB)、IP アドレス
出力例:
NAME GUEST ID STATUS VCPU NUM VRAM SIZE IP
145 09fd98ee-4e2d-4c7a-a95c-8bacab80d322 shutdown 4 2097152 -
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 shutdown 4 2097152 -
1454486 5a0391f2-c545-45eb-8eed-0a104972229b shutdown 4 2097152 -
win101 32ee5a74-de8b-47a9-959d-1725c881ceab shutdown 4 2097152 -
STATUS の一般的な値:
| 状態 | 説明 |
|---|---|
| running | 実行中 |
| shutdown | シャットダウン済み |
| saved | 一時停止中(実行状態がディスクに保存済み) |
vms vm get – 仮想マシンの詳細表示
指定した仮想マシンの完全な構成と実行状態を表示します。
vms vm get <id> --json
- 出力には仮想マシンのすべての構成および実行状態のフィールドが含まれます
- 説明なし、IP なしなどの空の値は空文字列として表示されます
- 仮想マシンが存在しない場合、コマンドはエラーを返しエラーメッセージを出力します
出力例:
{
"iso_images": [
"c93083a5-2b39-4f32-b19f-1ad97c6b4de4",
"9b3f2fdd-9173-4611-a84c-0cc9ce88293c"
],
"image_paths": [
"",
""
],
"autorun": 0,
"boot_from": "cdrom",
"bios": "bios",
"kb_layout": "en-us",
"serial_console": true,
"usb_version": 2,
"usb_device_name": [
"USB - Integrated Technology Express, Inc. Disk 2.0"
],
"usbs": [
":3:3:048d:1234"
],
"use_ovmf": false,
"vnics": [
{
"prefer_sriov": false,
"vnic_type": 3,
"mac": "1a:e2:ae:95:4a:51",
"network_id": "b364a1ec-f60c-4971-9ea2-f7a002f09fa3",
"virtual_interface_id": "fe972ef5-b066-4967-89fa-8e85e43c8808"
}
],
"operating_system_type": 0,
"vdisks": [
{
"vdisk_mode": 1,
"name": "",
"unmap": false,
"iops_enable": false,
"dev_limit": 0,
"dev_reservation": 0,
"dev_weight": 3,
"vdisk_size": 1024,
"idx": 0,
"vdisk_id": "f4ed4eae-1512-4273-963b-79ebd93a0932",
"disk_image_type": "",
"disk_image_id": ""
}
],
"name": "win10",
"vcpu_num": 4,
"vcpu_usage": 0,
"vram_size": 2097152,
"video_card": "vga",
"machine_type": "1",
"cpu_weight": 3,
"ip": "",
"desc": "",
"cpu_passthru": false,
"hyperv_enlighten": true,
"cpu_pin_num": 0,
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6",
"repo_name": "VM-Storage01",
"poweron_after_create": false,
"guest_id": "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1",
"increaseAllocatedSize": 0,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "",
"snap_num": 0,
"has_guest_agent": false,
"status": "shutdown",
"status_code": 0,
"status_desc": "",
"host_ram_size": 0,
"total_throughput": 0,
"total_iops": 0,
"total_io_latency": 0,
"total_rx_bytes": 0,
"total_tx_bytes": 0,
"memory_usage": 0,
"cpu_usage": 0,
"vm_status_progress": 0
}
vms vm list-resource – 仮想マシン作成に使用可能なリソースの一覧表示
ホストが提供可能なファームウェア種別、イメージ、CPU、メモリ、ネットワーク、ストレージ、パススルー可能なデバイスなどのリソースを表示し、仮想マシン作成前の評価に使用します。
vms vm list-resource --json
返却フィールド:max_cpu_num、max_ram_size、usbs、pci_devices、networks、repos、images、video_cards、firmware、keyboard_layout。
出力例:
{
"max_cpu_num": 4,
"max_ram_size": 16503336960,
"usbs": [
{
"product_name": "4-Port USB 2.0 Hub",
"usb_id": ":3:3:0x0bda:0x5423",
"version": ""
},
{
"product_name": "4-Port USB 3.2 Hub",
"usb_id": ":4:2:0x0bda:0x0423",
"version": ""
},
{
"product_name": "Flash Drive",
"usb_id": ":3:2:0x058f:0x6387",
"version": ""
}
],
"pci_devices": [
{
"device_name": "",
"bdf": "0000:02:00.0",
"vendor_id": "0x10ec",
"product_id": "0x8126",
"class_id": "0x020000",
"iommu_group": 13,
"iommu_group_bdfs": [
"0x0000:0x02:0x00.0x0"
],
"driver": "r8169",
"type": "Network Controller"
},
{
"device_name": "",
"bdf": "0000:00:0d.0",
"vendor_id": "0x8086",
"product_id": "0x464e",
"class_id": "0x0c0330",
"iommu_group": 2,
"iommu_group_bdfs": [
"0x0000:0x00:0x0d.0x0"
],
"driver": "xhci_hcd",
"type": "USB Controller"
},
{
"device_name": "",
"bdf": "0000:03:00.0",
"vendor_id": "0x10ec",
"product_id": "0x8126",
"class_id": "0x020000",
"iommu_group": 14,
"iommu_group_bdfs": [
"0x0000:0x03:0x00.0x0"
],
"driver": "r8169",
"type": "Network Controller"
},
{
"device_name": "",
"bdf": "0000:00:14.0",
"vendor_id": "0x8086",
"product_id": "0x54ed",
"class_id": "0x0c0330",
"iommu_group": 3,
"iommu_group_bdfs": [
"0x0000:0x00:0x14.0x2",
"0x0000:0x00:0x14.0x0"
],
"driver": "xhci_hcd",
"type": "USB Controller"
},
{
"device_name": "",
"bdf": "0000:00:14.2",
"vendor_id": "0x8086",
"product_id": "0x54ef",
"class_id": "0x050000",
"iommu_group": 3,
"iommu_group_bdfs": [
"0x0000:0x00:0x14.0x2",
"0x0000:0x00:0x14.0x0"
],
"driver": "",
"type": "IOMMU Group Device"
}
],
"networks": [
{
"name": "VM-Network04",
"network_id": "ce9807c9-47b3-4258-9a80-ea8db1fd785d",
"support_sriov": false
},
{
"name": "VM-Network05",
"network_id": "b56c2f7b-e3f0-4b68-8a3b-245c90a8f8b5",
"support_sriov": false
},
{
"name": "VM-Network01",
"network_id": "b364a1ec-f60c-4971-9ea2-f7a002f09fa3",
"support_sriov": false
},
{
"name": "VM-Network02",
"network_id": "6c9fffd8-c7c4-4968-9b50-6890a640ec94",
"support_sriov": false
},
{
"name": "VM-Network03",
"network_id": "4c05b2a2-dd49-4588-ac5c-64975c92d2d3",
"support_sriov": false
}
],
"repos": [
{
"name": "VM-Storage01",
"free_size": 941970767872,
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6",
"volume_size": 1099511627776,
"file_system": "btrfs",
"status": ""
},
{
"name": "VM-Storage02",
"free_size": 445785296896,
"repo_id": "517571ba-f7f7-49e1-9a62-7eb6ddfd9c78",
"volume_size": 536870912000,
"file_system": "btrfs",
"status": ""
}
],
"images": [
{
"id": "c93083a5-2b39-4f32-b19f-1ad97c6b4de4",
"name": "cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f",
"status": "available",
"type": "iso",
"used_size": 3884539904
},
{
"id": "9b3f2fdd-9173-4611-a84c-0cc9ce88293c",
"name": "virtio-win-0.1.285pro",
"status": "available",
"type": "iso",
"used_size": 789645312
},
{
"id": "efd6da18-9475-44cf-8fb0-e2513421e68a",
"name": "haos_ova-18.2",
"status": "available",
"type": "qcow2",
"used_size": 1091698688,
"virtual_size": 34359738368
},
{
"id": "cb9d929a-d673-4e46-ac86-9488bbef19b9",
"name": "cn_windows_11_consumer_editions_version_21h2_updated_july_2022_x64_dvd_50ad4acf",
"status": "available",
"type": "iso",
"used_size": 5858816000
}
],
"video_cards": [
"cirrus",
"vga",
"vmvga"
],
"firmware": [
"Legacy BIOS",
"UEFI"
],
"keyboard_layout": [
"fr-be",
"ar",
"bepo",
"cz",
"da",
"de",
"de-ch",
"en-gb",
"en-us",
"es",
"et",
"fo",
"fr",
"fr-be",
"fr-ca",
"fr-ch",
"hr",
"hu",
"is",
"it",
"ja",
"lt",
"lv",
"mk",
"nl",
"nl-be",
"no",
"pl",
"pt",
"pt-br",
"ru",
"sl",
"sv",
"th",
"tr"
]
}
vms vm logs – 仮想マシンの操作ログ表示
指定した仮想マシンに関連する操作ログ(起動・停止、スナップショット、編集、インポート・エクスポートなど)を表示します。
vms vm logs <id> --json [--limit N] [--desc]
--limitは返却件数を指定します。既定は 50 です--descは時刻の降順で並べます(既定で有効)- 各ログには時刻、レベル、分類、操作ユーザー、イベント説明が含まれ、イベント説明は完全なテキストです
- イベント説明(
event)は VMs サービスがデバイスのシステム言語に合わせてローカライズして出力します。本文書の例では統一して英語を使用しています
出力例:
[
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:44:09.176535374+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:43:10.597187659+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) started successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:40:32.74904922+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:39:55.916718004+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) started successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:39:43.341421576+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:38:31.518259486+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:38:07.98065689+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) started successfully"
},
{
"id": 0,
"level": "Error",
"time": "2026-09-02T11:32:35.01952111+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine (win10) export failed (Error:stat : no such file or directory)"
}
]
II. 仮想マシンの電源管理
vms vm poweron – 仮想マシンの起動
vms vm poweron <id>
- 仮想マシンはシャットダウン状態である必要があり、そうでない場合は状態競合エラーを返します
- 出力:
VM powered on: <id>
vms vm poweroff – 仮想マシンの停止
仮想マシンに正常シャットダウン要求を送信し、システムを正常に終了させます。
vms vm poweroff <id> [--yes]
- 危険な操作に該当します:対話モードでは確認を求め、非対話モードでは
--yesを付ける必要があります - 仮想マシンは実行中状態である必要があり、そうでない場合は状態競合エラーを返します
対話モードの確認プロンプト:
This action will powered off VM "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1". Do you want to continue? [y/N]:
- 出力:
VM powered off: <id>
vms vm force-poweroff – 仮想マシンの強制停止(高リスク)
仮想マシンを強制停止します。電源を直接切るのと同じです。
vms vm force-poweroff <id> [--yes]
- 高リスク操作に該当します:対話モードでは確認を求め、非対話モードでは
--yesを付ける必要があります - 仮想マシン内のデータが失われる可能性があるため、仮想マシンが応答しない場合にのみ使用することを推奨します
対話モードの確認プロンプト:
This action will force powered off VM "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1". Do you want to continue? [y/N]:
- 出力:
VM force powered off: <id>
vms vm reboot – 仮想マシンの再起動
vms vm reboot <id>
- 出力:
VM rebooted: <id>
vms vm pause – 仮想マシンの一時停止
仮想マシンの実行状態を凍結し、現在の状態をディスクに保存します。
vms vm pause <id>
- 仮想マシンは実行中状態である必要があり、そうでない場合は状態競合エラーを返します
- 一時停止後、仮想マシンの状態は
savedと表示されます - 出力:
VM paused: <id>
vms vm resume – 仮想マシンの再開
仮想マシンを一時停止状態から実行状態に戻します。
vms vm resume <id>
- 仮想マシンは一時停止状態である必要があり、そうでない場合は状態競合エラーを返します
- 出力:
VM resumed: <id>
vms vm autorun – 自動起動の設定
ホストの起動に伴い仮想マシンを自動的に起動するかどうかを設定します。
vms vm autorun <id> <true|false>
- 第 2 引数は
trueまたはfalseである必要があります - コマンドは現在の構成を読み取り、自動起動スイッチのみを変更します。その他の構成には影響しません
- 出力:
Auto-start enabled for VM <id>またはAuto-start disabled for VM <id>
III. 仮想マシンのクローン、エクスポート、削除
vms vm clone – 仮想マシンのクローン
既存の仮想マシンをテンプレートとして、新しい仮想マシンを複製します。
vms vm clone --body '{"guest_id":"<source_id>","name":"my-clone"}'
vms vm clone --file clone.json
- リクエスト本文の
guest_idはコピー元の仮想マシン ID、name(またはguest_name)は新しい仮想マシンの名前です - コピー元の仮想マシンはシャットダウン状態である必要があります
--bodyは JSON 文字列で直接リクエスト本文を渡し、--fileはファイルからリクエスト本文を読み取ります
vms vm export – 仮想マシンのエクスポート
仮想マシンを OVA ファイルとしてエクスポートし、バックアップや他の仮想化プラットフォームへの移行を容易にします。
vms vm export --body '{"guest_id":"<source_id>","target_ova_path":"/Volume1/export/my-vm.ova"}'
vms vm export --file export.json
- リクエスト本文の
guest_idはコピー元の仮想マシン ID、target_ova_pathは対象ファイルパス、ova_modeは省略可能な VMware 互換モードです - コピー元の仮想マシンはシャットダウン状態である必要があります
- エクスポートは時間のかかるタスクであり、大容量の仮想マシンでは時間が長くなります
vms vm delete – 仮想マシンの削除(高リスク)
仮想マシンを完全に削除します。
vms vm delete <id> [--yes]
- 高リスク操作に該当します:対話モードでは確認を求め、非対話モードでは
--yesを付ける必要があります - 削除後は復元できません。事前に仮想マシン内のデータがバックアップ済みであることを確認してください
対話モードの確認プロンプト:
This action will permanently delete VM "5a0391f2-c545-45eb-8eed-0a104972229b". Do you want to continue? [y/N]:
- 出力:
VM deleted: <id>
IV. 仮想ハードディスク
vms vm disk list – 仮想ハードディスクの表示
指定した仮想マシンのすべての仮想ハードディスクを一覧表示します。
vms vm disk list <id> [--json]
出力例:
NAME VDISK ID VDISK SIZE VDISK MODE IDX
- f4ed4eae-1512-4273-963b-79ebd93a0932 1024 1 0
VDISK MODEは仮想ハードディスクのコントローラー種別番号で、1は IDE を表します- 名前のない仮想ハードディスクは
NAME列に-と表示されます
V. スナップショット管理
vms vm snapshot list – スナップショットの一覧表示
vms vm snapshot list <id> [--json]
出力例:
NAME GUEST ID DESCRIPTION LOCKED CREATED AT VM STATE ACTUAL CONSISTENCY
snapshot_2026-09-02T11-43-51.183703274 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 cli-test-edited false 2026-09-02T11:43:51+08:00 running crash
snapshot_2026-05-15T17-13-48.986448711 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 - false 2026-05-15T17:13:48+08:00 shutdown filesystem
VM STATEはスナップショット作成時の仮想マシンの実行状態ですACTUAL CONSISTENCYはスナップショットの整合性種別です。filesystemはファイルシステム整合性、crashはクラッシュ整合性を表します
vms vm snapshot create – スナップショットの作成
仮想マシンのスナップショットを作成し、迅速なロールバックや現在の状態のバックアップに使用します。
vms vm snapshot create <id>
vms vm snapshot create <id> --body '{"description":"before-upgrade","locked":false}'
- リクエスト本文は省略可能です:
descriptionはスナップショットの説明、lockedはロックするかどうかです - スナップショット名は作成時刻に基づいてシステムが自動生成します
- スナップショットはストレージを消費します。長期間整理しないとストレージを圧迫する可能性があるため、定期的な整理を推奨します
vms vm snapshot edit – スナップショットの編集
スナップショットの説明またはロック状態を変更します。
vms vm snapshot edit <id> <snapshot_name> --body '{"description":"updated description"}'
vms vm snapshot edit <id> <snapshot_name> --body '{"locked":true}'
- リクエスト本文に含まれるフィールドのみを変更し、含まれないフィールドは元の値を保持します。説明のみを変更してもロック状態は変わらず、その逆も同様です
出力例:
PROPERTY VALUE
ACTUAL CONSISTENCY crash
CREATED AT 2026-09-02T11:43:51+08:00
DESCRIPTION cli-test-edited
GUEST ID 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1
LOCKED false
NAME snapshot_2026-09-02T11-43-51.183703274
VM STATE running
vms vm snapshot config – スナップショットの仮想マシン構成の表示
スナップショットに保存された仮想マシン構成を表示します。
vms vm snapshot config <id> <snapshot_name>
<id> は仮想マシン ID、<snapshot_name> はスナップショット名で、vms vm snapshot list <id> で取得できます。
出力例:
PROPERTY VALUE
CPU COMPATIBILITY MODE true
CPU PASSTHRU false
HYPERV ENLIGHTEN true
REPO NAME VM-Storage01
USB DEVICE NAME ["USB - Integrated Technology Express, Inc. Disk 2.0"]
USB VERSION 2
USBS [":3:3:048d:1234"]
VCPU NUM 4
VDISK NUM 1
VDISK TOTAL SIZE 1024
VDISKS [{"name":"disk1","type":"ide","vdisk_size":1024}]
VIDEO CARD vga
VRAM SIZE 2097152
vms vm snapshot consistency – スナップショット整合性のプレビュー
スナップショット作成前に得られる可能性のある整合性種別をプレビューし、現在スナップショット作成に適しているかを判断するのに役立ちます。
vms vm snapshot consistency <id>
出力例:
PROPERTY VALUE
CONSISTENCY TYPE filesystem
REASON vm_shutdown
VM STATE shutdown
仮想マシンがシャットダウン状態の場合、スナップショット作成時にファイルシステム整合性のスナップショットを得られます。実行状態では通常、クラッシュ整合性のスナップショットしか得られません。
VI. リモートコンソール
vms vm link – VNC 接続情報の取得
仮想マシンの VNC コンソールの接続情報を取得し、ブラウザでリモートコンソールを開くために使用します。
vms vm link <id> --json
- 仮想マシンは実行中または一時停止状態である必要があり、そうでない場合は状態競合エラーを返します
出力例:
{
"url": "VMs/noVNC/vnc.html?autoconnect=true\u0026reconnect=true\u0026path=utils/websockify/?token=09fd98ee-4e2d-4c7a-a95c-8bacab80d322\u0026title=145",
"port": 8181,
"https": false
}
urlは NAS 管理アドレスに対するコンソールパス、portはコンソールサービスのポート、httpsは HTTPS 経由でのアクセスが必要かどうかを表します- JSON 出力では URL 内の
&が\u0026にエスケープされます
VII. 仮想ネットワーク管理
ネットワークの種類は 2 つに分かれます:
| 種類 | 説明 |
|---|---|
| 専用(private) | 本機の仮想マシン間の通信にのみ使用する内部ネットワークで、物理 NIC にバインドされません |
| 外部(external) | 物理 NIC にバインドされたネットワークで、仮想マシンはこのネットワークを介して外部と通信できます |
vms network list – 仮想ネットワークの一覧表示
vms network list [--limit N] [--offset N] [--json]
出力例:
NAME NETWORK ID TYPE VLAN ID NUM GUESTS NUM HOSTS NUM INTERFACES HOST NAME
VM-Network04 ce9807c9-47b3-4258-9a80-ea8db1fd785d external 0 0 1 1 A-eae4
VM-Network01 b364a1ec-f60c-4971-9ea2-f7a002f09fa3 external 0 2 1 1 A-eae4
NUM GUESTSはこのネットワークに接続されている仮想マシンの数、NUM INTERFACESは選択済みの物理 NIC の数です
vms network get – 仮想ネットワークの詳細表示
vms network get <network_id> --json
出力例:
{
"metadata": {
"createdAt": "2026-05-15T16:46:08.415062294+08:00",
"updatedAt": "2026-05-15T16:46:08.415062415+08:00"
},
"network_id": "b364a1ec-f60c-4971-9ea2-f7a002f09fa3",
"name": "VM-Network01",
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interfaces": {
"15341593-7f43-49f4-9523-6ac750a63a8a": {
"totalCount": 1,
"items": [
{
"checked": false,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interface_id": "/00000000-0000-0000-0000-6cbfb504eae5",
"interface_name": "LAN 2",
"ip": [
"192.168.2.121"
],
"mask": [
"ffffff00"
],
"speed_mbs": 1000,
"status": "connected",
"tx_kbps": 0,
"rx_kbps": 0
},
{
"checked": true,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interface_id": "/00000000-0000-0000-0000-6cbfb504eae4",
"interface_name": "LAN 1",
"ip": [
"10.18.8.95"
],
"mask": [
"ffffff00"
],
"speed_mbs": 1000,
"status": "connected",
"tx_kbps": 2.5458984375,
"rx_kbps": 11.45458984375
}
]
}
},
"num_guests": 0,
"num_hosts": 1,
"num_interfaces": 1,
"type": "external",
"vlan_id": 0
}
interfacesはこのネットワークにバインドされた NIC 情報で、ホスト ID ごとに整理されています。checkedはその NIC が選択済みかどうかを表しますmetadataはネットワークの作成日時と更新日時を記録します
vms network create – 仮想ネットワークの作成
vms network create --body '{"name":"net1","type":"private","host_name":"TNAS"}' --json
vms network create --body '{"name":"net1","type":"external","vlan_id":100,"host_name":"TNAS","interface_name":"LAN 1"}' --json
専用ネットワークの作成:
- リクエスト本文には
name、type(private)、host_nameまたはhost_idを含め、ネットワークをどのホスト上に作成するかを指定する必要があります - 作成前に
vms network list-interfaces privateで使用可能なホストを確認できます
外部ネットワークの作成:
- リクエスト本文には
name、type(external)、vlan_idを含め、少なくとも 1 枚の物理 NIC を指定する必要があります interface_name(例:LAN 1)またはinterface_idで NIC を指定できます。NIC 名がホスト間で一意でない場合はhost_nameと併用する必要があります- 作成前に
vms network list-interfaces externalで使用可能な NIC を確認できます
出力は作成後のネットワーク情報で、vms network get の構造と一致します:
{
"metadata": {
"createdAt": "2026-09-17T16:57:32.064720576+08:00",
"updatedAt": "2026-09-17T16:57:32.064720634+08:00"
},
"network_id": "27047bd1-eeeb-4762-82ae-45094dea4854",
"name": "cli-demo-net",
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interfaces": {
"15341593-7f43-49f4-9523-6ac750a63a8a": {
"totalCount": 1,
"items": [
{
"checked": true,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interface_id": "",
"interface_name": "PNdea4854",
"ip": null,
"mask": null,
"speed_mbs": 0,
"status": ""
}
]
}
},
"num_guests": 0,
"num_hosts": 1,
"num_interfaces": 1,
"type": "private",
"vlan_id": 0
}
NIC を指定しない場合、コマンドは次のヒントを表示します:
network create (type "external") requires selecting at least one interface; add "interface_name" (optionally scoped with "host_name") or "interface_id" to the body, e.g. {"name":"net1","type":"external","vlan_id":100,"host_name":"TNAS","interface_name":"LAN 1"}. Run "vms network list-interfaces external" to see available interfaces. Example available interface: LAN 2 on A-eae4 (host_id=15341593-7f43-49f4-9523-6ac750a63a8a, interface_id=/00000000-0000-0000-0000-6cbfb504eae5)
vms network update – 仮想ネットワークの更新
変更が必要なフィールドのみを送信し、送信していないフィールドは元の値を保持します。
vms network update --body '{"network_id":"<network_id>","name":"renamed"}'
vms network update --body '{"network_id":"<network_id>","vlan_id":200}'
- リクエスト本文には
network_idを含める必要があります - コマンドはまず現在のネットワーク構成を読み取り、送信されたフィールドをマージします。ネットワーク名と選択済み NIC はクリアされません
- 出力は更新後のネットワーク情報です
vms network delete – 仮想ネットワークの削除(高リスク)
vms network delete <network_id> [--yes]
- 高リスク操作に該当します:対話モードでは確認を求め、非対話モードでは
--yesを付ける必要があります - ネットワークを削除すると、そのネットワークに接続しているすべての仮想マシンが切断されます
- 先に
vms network list-vnics <network_id>で接続している仮想マシンを確認することを推奨します
対話モードの確認プロンプト:
This action will delete network "b364a1ec-f60c-4971-9ea2-f7a002f09fa3". Do you want to continue? [y/N]:
- 出力:
Network deleted: <network_id>
vms network list-interfaces – ネットワークインターフェースの一覧表示
指定した種類のネットワークインターフェースを一覧表示します。
vms network list-interfaces external [--limit N] [--offset N]
vms network list-interfaces private [--limit N] [--offset N]
externalはホスト上で使用可能な物理 NIC を返しますprivateは専用ネットワークの作成に使用できるホスト情報を返します
出力例(external):
INTERFACE NAME INTERFACE ID HOST NAME STATUS IP SPEED MBS
LAN 2 /00000000-0000-0000-0000-6cbfb504eae5 A-eae4 disconnected - -1
LAN 1 /00000000-0000-0000-0000-6cbfb504eae4 A-eae4 connected ["10.18.8.73"] 1000
出力例(private):
INTERFACE NAME INTERFACE ID HOST NAME STATUS IP SPEED MBS
- - A-eae4 - - 0
vms network list-vnics – ネットワーク上の仮想 NIC の一覧表示
vms network list-vnics <network_id> [--limit N] [--offset N] [--json]
出力例:
GUEST NAME GUEST ID MAC ADDRESS VIRTUAL INTERFACE ID NETWORK NAME STATUS PREFER SRIOV
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 1a:e2:ae:95:4a:51 fe972ef5-b066-4967-89fa-8e85e43c8808 VM-Network01 - false
win101 32ee5a74-de8b-47a9-959d-1725c881ceab 1a:f6:db:fb:3d:79 f93bf16c-01ca-4b60-b164-8a3083fb5f03 VM-Network01 - false
vms network ovsinfo – OVS 状態の表示
Open vSwitch 仮想スイッチが有効かどうかを確認します。
vms network ovsinfo [--json]
出力例:
PROPERTY VALUE
RESULT true
VALUE が true の場合は OVS が有効であることを表します。
VIII. イメージ管理
vms image list – イメージの一覧表示
仮想マシンの作成に使用できるシステムイメージファイルを一覧表示します。
vms image list --json
image_nameはイメージ名、file_nameは対応するファイル名ですtypeはイメージ形式で、iso、qcow2などがありますstatusはイメージ状態で、availableは使用可能を表しますreposはこのイメージが存在するストレージですprogressはイメージ処理タスクの進捗で、0は進行中のタスクがないことを表します
出力例:
{
"totalCount": 4,
"items": [
{
"image_name": "cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f",
"image_id": "c93083a5-2b39-4f32-b19f-1ad97c6b4de4",
"file_name": "cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f.iso",
"type": "iso",
"file_size": 3884539904,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1778835784,
"repos": [
{
"repo_name": "VM-Storage01",
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
},
{
"image_name": "cn_windows_11_consumer_editions_version_21h2_updated_july_2022_x64_dvd_50ad4acf",
"image_id": "cb9d929a-d673-4e46-ac86-9488bbef19b9",
"file_name": "cn_windows_11_consumer_editions_version_21h2_updated_july_2022_x64_dvd_50ad4acf.iso",
"type": "iso",
"file_size": 5858816000,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1778835784,
"repos": [
{
"repo_name": "VM-Storage01",
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
},
{
"image_name": "virtio-win-0.1.285pro",
"image_id": "9b3f2fdd-9173-4611-a84c-0cc9ce88293c",
"file_name": "virtio-win-0.1.285.iso",
"type": "iso",
"file_size": 789645312,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1778836128,
"repos": [
{
"repo_name": "VM-Storage01",
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
},
{
"image_name": "haos_ova-18.2",
"image_id": "efd6da18-9475-44cf-8fb0-e2513421e68a",
"file_name": "haos_ova-18.2.qcow2",
"type": "qcow2",
"file_size": 1091698688,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1787191833,
"repos": [
{
"repo_name": "VM-Storage02",
"repo_id": "517571ba-f7f7-49e1-9a62-7eb6ddfd9c78"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
}
]
}
vms image edit – イメージの編集
イメージ名を変更するか、イメージが存在するストレージを調整します。
vms image edit --body '{"image_id":"<image_id>","repos":["<repo_id>"]}'
vms image edit --body '{"image_id":"<image_id>","repos":["<repo_id_1>","<repo_id_2>"],"image_name":"renamed.iso"}'
- リクエスト本文には
image_idとreposを含める必要があります。reposはこのイメージの完全な対象ストレージリストで、空にはできません image_name、file_name、type、file_sizeは省略可能なフィールドで、指定しない場合は現在の値が使用されますreposが空の場合、イメージがすべてのストレージから削除されるため、コマンドは実行前にこのリクエストを拒否します- 出力:
Image updated
vms image delete – イメージの削除(高リスク)
vms image delete --image-id <image_id> [--yes]
--image-idは必須項目です- 高リスク操作に該当します:対話モードでは確認を求め、非対話モードでは
--yesを付ける必要があります - イメージを削除しても作成済みの仮想マシンには影響しませんが、その後このイメージを基に仮想マシンを作成する際に影響します
- 先に
vms image list-vms --image-id <image_id>で使用状況を確認することを推奨します
対話モードの確認プロンプト:
This action will permanently delete image "efd6da18-9475-44cf-8fb0-e2513421e68a". Do you want to continue? [y/N]:
- 出力:
Image deleted: <image_id>
vms image list-vms – このイメージを使用している仮想マシンの表示
vms image list-vms --image-id <image_id> [--json]
出力例:
GUEST NAME
1454486
イメージを削除する前にこのコマンドを実行して影響範囲を確認できます。このイメージを使用している仮想マシンがない場合、出力は空です。
IX. ストレージ管理
vms repo list – ストレージの一覧表示
vms repo list [--json]
出力例:
NAME REPO ID STATUS USED PERCENT USED TOTAL SIZE FILE SYSTEM HOST NAME
VM-Storage01 735ef7f7-5d8d-4102-9377-8a7b8c33cda6 - 155583651840 14.150249481201172 1097552691200 btrfs -
VM-Storage02 517571ba-f7f7-49e1-9a62-7eb6ddfd9c78 normal 89361494016 16.64487648010254 535146790912 btrfs A-eae4
vms repo get – ストレージの詳細表示
vms repo get <repo_id> [--json]
出力例:
PROPERTY VALUE
ENABLE LOWER NOTIFY false
FILE SYSTEM btrfs
HARD LIMIT 2
HOST ID 15341593-7f43-49f4-9523-6ac750a63a8a
HOST NAME A-eae4
LAST NOTIFY TRESHOLD -
LOCATION VOLUME /Volume2
NAME VM-Storage02
REPO ID 517571ba-f7f7-49e1-9a62-7eb6ddfd9c78
SOFT LIMIT 10
STATUS normal
TOTAL SIZE 534760128512
LOCATION VOLUMEはストレージが存在するボリュームですSOFT LIMIT、HARD LIMITは容量警告のしきい値(パーセント)ですENABLE LOWER NOTIFYは容量不足の通知を有効にするかどうかです
vms repo update – ストレージの更新
変更が必要なフィールドのみを送信し、送信していないフィールドは元の値を保持します。
vms repo update --body '{"repo_id":"<repo_id>","name":"new-name"}'
vms repo update --body '{"repoId":"<repo_id>","enable_lower_notify":true}'
- ストレージ ID は
repo_idまたはrepoIdで指定できます - コマンドはまず現在の構成を読み取り、送信されたフィールドをマージします。その他の設定は失われません
- 出力は更新後のストレージ情報です
vms repo delete – ストレージの削除(高リスク)
vms repo delete <repo_id> <true|false> [--yes]
- 第 2 引数は
need_save_dataです:trueはディスク上のデータファイルを保持することを意味し、falseはデータごと削除することを意味します - 高リスク操作に該当します:対話モードでは確認を求め、非対話モードでは
--yesを付ける必要があります - ストレージを削除すると、その中の仮想マシンとイメージも同時に削除されます。先に
vms repo check-runningとvms repo whether-exist-dataを実行して影響範囲を確認することを推奨します
対話モードの確認プロンプト:
This action will delete repository "735ef7f7-5d8d-4102-9377-8a7b8c33cda6" (save data: true). Do you want to continue? [y/N]:
- 出力:
Repository deleted: <repo_id>
vms repo list-volumes – 使用可能なボリュームの一覧表示
ストレージの作成に使用できるボリュームを一覧表示します。
vms repo list-volumes [--json]
出力例:
NAME UUID DEVICE FILESYSTEM STATUS VOLUME TYPE TOTAL USED AVAILABLE USAGE
lv3 00000004-2608-1311-3025-6cbfb504eae4 /dev/mapper/vg0-lv3 ext4 - - {"unit":"KB","value":102626232} {"unit":"KB","value":52} {"unit":"KB","value":101561220} 0.000051200619070623694
lv2 00000003-2606-2215-3256-6cbfb504eae4 /dev/mapper/vg0-lv2 btrfs - - {"unit":"KB","value":104857600} {"unit":"KB","value":9715824} {"unit":"KB","value":93096464} 9.450061066630479
vms repo list-vms – ストレージ内の仮想マシンの一覧表示
vms repo list-vms --body '{"repo_id":"<repo_id>"}'
- ストレージ ID は
repo_idまたはrepoIdで指定できます - コマンドはまずストレージオブジェクトを取得してからその仮想マシンを照会するため、結果がより確実です
vms repo check-running – ストレージ上で実行中の仮想マシンの確認
vms repo check-running <repo_id> [--json]
ストレージを削除する前に実行し、実行中の仮想マシンがないことを確認します。実行中の仮想マシンがない場合、出力は空です。
vms repo whether-exist-data – ストレージ内にデータがあるかの確認
vms repo whether-exist-data --body '{"repo_id":"<repo_id>"}'
ストレージを削除する前に実行し、ストレージ内にまだデータがあるかを確認します。Web 画面でストレージを削除する前の事前チェックと同じです。
X. グローバル設定
vms setting get – グローバル設定の表示
VMs アプリケーションのグローバル構成を表示します。
vms setting get [--json]
出力例:
PROPERTY VALUE
HOST SHUTDOWN BEHAVIOR 1
KB LAYOUT en-us
SHOW VIRTIO BLK VDISK false
HOST SHUTDOWN BEHAVIORはホストのシャットダウン時の仮想マシンの扱いですKB LAYOUTは仮想マシンのキーボードレイアウトです
XI. 監視情報の照会
vms collectd hostinfo – ホスト監視情報の表示
vms collectd hostinfo [--limit N] [--offset N] [--json]
出力例:
NAME ID STATUS TYPE CPU USAGE RAM USAGE DESC
A-eae4 - running healthy 2.53 15.66 Info
vms collectd vminfo – 仮想マシン監視情報の表示
vms collectd vminfo [--limit N] [--offset N] [--json]
出力例:
NAME ID STATUS TYPE CPU USAGE RAM USAGE DESC
145 09fd98ee-4e2d-4c7a-a95c-8bacab80d322 shutdown healthy 0 0 info
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 shutdown healthy 0 0 info
win101 32ee5a74-de8b-47a9-959d-1725c881ceab shutdown healthy 0 0 info
vms collectd storageinfo – ストレージ監視情報の表示
vms collectd storageinfo [--limit N] [--offset N] [--json]
出力例:
NAME ID HOST NAME STATUS TYPE SIZE USED PERCENT USED PERCENT FREE
VM-Storage01 735ef7f7-5d8d-4102-9377-8a7b8c33cda6 A-eae4 none healthy 1097552691200 155583651840 14.328414916992188 85.67158508300781
VM-Storage02 517571ba-f7f7-49e1-9a62-7eb6ddfd9c78 A-eae4 none healthy 535146790912 89361494016 16.966018676757812 83.03398132324219
対話モードと非対話モード
CLI は現在ターミナル環境で実行されているかを判断し、異なる動作をとります:
対話モード(ターミナル環境)
- 危険な操作では確認プロンプトを表示し、既定の選択肢は No です
yまたはYを入力すると続行し、nを入力するかそのまま Enter を押すとキャンセルします- 操作をキャンセルすると
Operation cancelledが出力され、終了コードは 99 です
非対話モード(スクリプト/自動化)
- 危険な操作では
--yesを使用して確認をスキップする必要があります。そうでない場合、コマンドは直ちにエラーとなり終了コード 1 を返します - ターミナル環境がない場合は入力を待たないため、スクリプトや定期タスクからの呼び出しに適しています
- スクリプト内で終了コードを明示的に処理し、成功・失敗・状態競合を区別することを推奨します
JSON 出力形式
照会系コマンドは --json パラメータをサポートし、正規化された JSON データを出力するため、プログラムによる解析が容易です。
形式の取り決め:
- フィールド名は snake_case を使用します
- ブール値は true/false です
- 時刻は ISO 8601 形式を使用し、ナノ秒精度と UTC+8 オフセットを含みます(例:2026-09-02T11:43:51.176535374+08:00)
- JSON は stdout に出力し、エラーメッセージは stderr に出力します
- テーブル出力で切り捨てられた長いフィールドは、JSON 出力では完全な値になります
例:
vms setting get --json
{
"host_shutdown_behavior": 1,
"kb_layout": "en-us",
"show_virtio_blk_vdisk": false
}
コマンドによって JSON 構造は多少異なります:vms vm list、vms vm snapshot list、vms vm logs は配列を直接出力します。その他の一覧系コマンドは totalCount とデータフィールドを含むオブジェクトを出力し、データフィールド名はリソースによって異なります(例:items、hosts、vms、storage)。例として vms repo list --json:
{
"totalCount": 2,
"items": {
"517571ba-f7f7-49e1-9a62-7eb6ddfd9c78": {
"name": "VM-Storage02",
"repo_id": "517571ba-f7f7-49e1-9a62-7eb6ddfd9c78",
"status": "normal",
"used": 89361494016,
"percent_used": 16.64487648010254,
"location_volume": "/Volume2",
"total_size": 535146790912,
"hard_limit": 2,
"soft_limit": 10,
"enable_lower_notify": false,
"file_system": "btrfs"
}
}
}
一部のコマンドの JSON 出力は単純な値です。たとえば vms network ovsinfo --json は true を出力し、vms vm pause --json は null を出力します。
終了コードの説明
| 終了コード | 意味 | 典型的なシナリオ |
|---|---|---|
| 0 | 成功 | コマンドが正常に完了 |
| 1 | パラメータエラー | 必須パラメータの不足、パラメータ形式の誤り、--yes の未指定 |
| 3 | リソースが存在しない | コマンドの事前チェックに合格しない場合。たとえば指定したイメージが存在しない |
| 4 | 状態競合 | 仮想マシンの現在の状態ではその操作を実行できない場合(例:シャットダウン済みの仮想マシンに対するシャットダウン) |
| 6 | 接続エラー | VMs サービスに接続できない、または socket パスが正しくない |
| 7 | タイムアウト | リクエストがタイムアウトしました。--timeout で調整できます |
| 9 | 実行エラー | バックエンドがエラーを返しました(エラーメッセージに code_num とエラー説明が含まれます) |
| 99 | ユーザーによるキャンセル | 対話確認で No を選択、またはそのまま Enter を押した場合 |
例:
# 退出码 1(参数错误)
vms vm poweroff <id>
# Confirmation required. Re-run with --yes to continue.
# 退出码 4(状态冲突)
vms vm pause <id>
# cannot pause a virtual machine: VM must be running (current status: shutdown)
# 退出码 9(执行错误)
vms vm get <id>
# vm check configure error: vdisk check - vm not exist: key not found (code_num=2001, vm check configure error)
# 退出码 6(连接错误)
vms vm list --socket /tmp/nope.sock
# failed to connect to VMs daemon (socket /tmp/nope.sock): dial unix /tmp/nope.sock: connect: no such file or directory
使用シナリオの例
日常運用
# 查看所有虚拟机状态
vms vm list
# 查看某台虚拟机的配置与运行状态
vms vm get <id>
# 查看虚拟机的操作日志
vms vm logs <id> --limit 20
# 开机、关机与重启
vms vm poweron <id>
vms vm poweroff <id> --yes
vms vm reboot <id>
スクリプトによる一括操作
# 批量启动所有已关机的虚拟机
vms vm list --json | jq -r '.[] | select(.status == "shutdown") | .guest_id' | while read -r id; do
vms vm poweron "$id"
done
# 批量关闭所有运行中的虚拟机
vms vm list --json | jq -r '.[] | select(.status == "running") | .guest_id' | while read -r id; do
vms vm poweroff "$id" --yes
done
# 存储空间容量检查,超过 80% 时输出告警
vms collectd storageinfo --json | jq -r '.storage[] | select(.percent_used > 80) | .name'
バックアップと点検
# 关机后为虚拟机创建快照
vms vm poweroff <id> --yes
vms vm snapshot consistency <id>
vms vm snapshot create <id> --body '{"description":"weekly-backup"}'
# 查看快照列表与详情
vms vm snapshot list <id>
vms vm snapshot config <id> <snapshot_name>
# 导出虚拟机为 OVA 文件,用于异地备份
vms vm export --body '{"guest_id":"<id>","target_ova_path":"/Volume1/backup/my-vm.ova"}'
削除前のチェック
# 删除存储空间前,先确认是否有虚拟机正在运行、是否存在数据
vms repo check-running <repo_id>
vms repo whether-exist-data --body '{"repo_id":"<repo_id>"}'
# 删除映像前,先确认有哪些虚拟机在使用
vms image list-vms --image-id <image_id>
# 删除网络前,先确认接入的虚拟机
vms network list-vnics <network_id>
AI ツールからの呼び出し
# AI 工具可通过命令行调用 vms 命令
# 例如:获取虚拟机与宿主机状态供 AI 分析
vms vm list --json
vms collectd hostinfo --json
# AI 可解析 JSON 输出并作出决策
vms vm list-resource --json
内部開発とシステム統合
# 开发人员可通过 CLI 封装内部运维工具
# 示例:封装虚拟机健康检查函数
check_vm_health() {
vms collectd vminfo --json | jq -r '.vms[] | select(.status != "running") | .name'
}
# 将 CLI 集成到内部监控平台
vms collectd storageinfo --json | curl -X POST https://monitor.example.com/api/report -d @-
よくある質問
Q:CLI は追加インストールが必要ですか?
不要です。CLI は VMs アプリケーションとともにインストールされ、アプリケーションを有効化した後は vms コマンドを直接実行するだけで使用できます。
Q:CLI は必ず SSH 経由で使用する必要がありますか?
いいえ。CLI はローカルターミナル、リモート SSH、スクリプト、AI ツールなど、あらゆるコマンドライン端末から呼び出せます。
Q:CLI は他のデバイス上の仮想マシンを管理できますか?
できません。CLI はローカルの unix socket を介して VMs サービスと通信し、本機の仮想マシンの管理にのみ使用されます。
Q:コマンドによって確認を求めるものとそうでないものがあるのはなぜですか?
仮想マシンの削除、ネットワークの削除、イメージの削除、ストレージの削除、およびシャットダウン(poweroff、force-poweroff)などの操作はデータやサービスに影響するため、既定で確認を求めます。起動、再起動、一時停止、再開、照会系のコマンドにはこのような制限はありません。
Q:非対話モードでは危険な操作をどのように確認しますか?
すべての危険な操作には --yes パラメータを追加する必要があります。そうでない場合、コマンドはエラーで終了します(終了コード 1)。
Q:スクリプト内でコマンドが正常に実行されたかを判断するには?
終了コードで判断します:0 は成功、0 以外は失敗を表します。--json の出力内容を解析する方法もあります。
Q:--json の出力するリストがオブジェクトなのはなぜですか?
一部のコマンドの JSON 出力は ID ごとにオブジェクトとして整理され、totalCount フィールドが付与されるため、ID による直接の参照が容易です。
その他のヘルプ
各コマンドは --help で詳細な使用方法を確認できます:
vms --help
vms vm --help
vms vm poweroff --help
vms network create --help