Skip to main content
Version: TOS 7

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 vmlistすべての仮想マシンを一覧表示いいえいいえ
vms vmget指定した仮想マシンの詳細を表示いいえいいえ
vms vmlist-resource仮想マシン作成に使用可能なリソースを一覧表示いいえいいえ
vms vmlogs仮想マシンの操作ログを表示いいえいいえ
vms vmpoweron仮想マシンを起動いいえいいえ
vms vmpoweroff仮想マシンを停止(正常シャットダウン)はいいいえ
vms vmforce-poweroff仮想マシンを強制停止はい✅
vms vmreboot仮想マシンを再起動いいえいいえ
vms vmpause仮想マシンを一時停止いいえいいえ
vms vmresume一時停止した仮想マシンを再開いいえいいえ
vms vmautorun自動起動を設定いいえいいえ
vms vmclone仮想マシンをクローンいいえいいえ
vms vmexport仮想マシンを OVA ファイルとしてエクスポートいいえいいえ
vms vmdelete仮想マシンを削除はい✅
vms vm disklist仮想マシンの仮想ハードディスクを表示いいえいいえ
vms vm snapshotlist仮想マシンのスナップショットを一覧表示いいえいいえ
vms vm snapshotcreateスナップショットを作成いいえいいえ
vms vm snapshoteditスナップショットの説明とロック状態を編集いいえいいえ
vms vm snapshotconfigスナップショットに保存された仮想マシン構成を表示いいえいいえ
vms vm snapshotconsistencyスナップショットの整合性をプレビューいいえいいえ
vms vmlinkVNC コンソールの接続情報を取得いいえいいえ
vms networklist仮想ネットワークを一覧表示いいえいいえ
vms networkget仮想ネットワークの詳細を表示いいえいいえ
vms networkcreate仮想ネットワークを作成いいえいいえ
vms networkupdate仮想ネットワークを更新いいえいいえ
vms networkdelete仮想ネットワークを削除はい✅
vms networklist-interfaces指定した種類のネットワークインターフェースを一覧表示いいえいいえ
vms networklist-vnicsネットワーク上の仮想 NIC を一覧表示いいえいいえ
vms networkovsinfoOVS が有効かどうかを表示いいえいいえ
vms imagelistイメージを一覧表示いいえいいえ
vms imageeditイメージ情報を編集いいえいいえ
vms imagedeleteイメージを削除はい✅
vms imagelist-vmsこのイメージを使用している仮想マシンを表示いいえいいえ
vms repolistストレージを一覧表示いいえいいえ
vms repogetストレージの詳細を表示いいえいいえ
vms repoupdateストレージ構成を更新いいえいいえ
vms repodeleteストレージを削除はい✅
vms repolist-volumes使用可能なボリュームを一覧表示いいえいいえ
vms repolist-vmsストレージ内の仮想マシンを一覧表示いいえいいえ
vms repocheck-runningストレージ上で実行中の仮想マシンを確認いいえいいえ
vms repowhether-exist-dataストレージ内にデータが存在するか確認いいえいいえ
vms settinggetグローバル設定を表示いいえいいえ
vms collectdhostinfoホストの監視情報を表示いいえいいえ
vms collectdvminfo仮想マシンの監視情報を表示いいえいいえ
vms collectdstorageinfoストレージの監視情報を表示いいえいいえ

コマンドリファレンス​

コマンド内の <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. リモートコンソール​

仮想マシンの 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