API tạo VM
Hướng dẫn đầy đủ về tạo máy ảo trong VergeOS, bao gồm tạo cơ bản, cấu hình theo recipe, ổ đĩa, thiết bị và giao diện mạng
Hướng dẫn này bao gồm việc tạo máy ảo trong VergeOS, từ tạo VM cơ bản đến thêm ổ đĩa, thiết bị và giao diện mạng. API VergeOS cung cấp các endpoint toàn diện cho việc tạo VM và cấu hình phần cứng.
Giai đoạn: Tạo VM (1/4) Đầu vào: thông tin xác thực API, thông tin cụm, đặc tả VM Đầu ra: VM key (42) + Machine key (54) Tiếp theo: Sử dụng các khóa để quản lý nguồn điện Các bước tiếp theo phổ biến:
Bật VM →
Quản lý nguồn VMCấu hình cài đặt →
Cấu hình VMThao tác nâng cao →
Các thao tác nâng cao của VM
Tài liệu này hỗ trợ
"Cách tạo VM qua API"
"Thêm ổ đĩa trong quá trình thiết lập VM"
"Gắn thiết bị GPU/PCI vào VM"
"Tạo VM với cloud-init"
"Hiểu VM key so với machine key"
"Thiết lập giao diện mạng cho VM mới"
"Cấp phát VM dựa trên recipe"
"Tự động hóa tạo VM hàng loạt"
"Triển khai VM theo mô hình hạ tầng dưới dạng mã"
Tham khảo nhanh
Các endpoint chính
Tạo VM:
POST /api/v4/vmsThêm ổ đĩa:
POST /api/v4/machine_drivesThêm thiết bị:
POST /api/v4/machine_devicesThêm NIC:
POST /api/v4/machine_nics
Tham số chính
name: định danh VM (bắt buộc)cluster: ID cụm đíchmachine: ID máy từ quá trình tạo VM (dùng để thêm phần cứng)resource_group: UUID cho passthrough thiết bị
Xác thực
Các bước tiếp theo
Sau khi tạo VM → Quản lý nguồn điện (Quản lý nguồn VM)
Tham khảo nhanh API
Tạo VM
POST
/api/v4/vms
Trả về cả hai
Tạo ban đầu
Thêm ổ đĩa
POST
/api/v4/machine_drives
Machine key
Phần cứng
Thêm thiết bị
POST
/api/v4/machine_devices
Machine key
Passthrough GPU/PCI
Thêm NIC
POST
/api/v4/machine_nics
Machine key
Giao diện mạng
Bật nguồn
POST
/api/v4/vm_actions
VM key
Điều khiển
Kiểm tra trạng thái
GET
/api/v4/machine_status/{id}
Machine key
Giám sát
Chỉ mục khắc phục sự cố
409 Xung đột: tên VM đã tồn tại, đang chạy, quyền bị từ chối
400 Yêu cầu không hợp lệ: tham số không hợp lệ, thiếu trường bắt buộc, JSON không hợp lệ
507 Không đủ dung lượng lưu trữ: tầng đã đầy, giảm kích thước, chọn tầng khác
403 Bị cấm: quyền của khóa API, truy cập cụm bị từ chối
404 Không tìm thấy: ID cụm không hợp lệ, thiếu nguồn media, resource group không hợp lệ
422 Không thể xử lý: giao diện ổ đĩa không hợp lệ, kiểu media không được hỗ trợ
Điều kiện tiên quyết
Thông tin xác thực API VergeOS hợp lệ với quyền quản lý VM
Hiểu các khái niệm VergeOS: cụm, vnet, nguồn media và resource group
Kiến thức cơ bản về nguyên tắc REST API và định dạng JSON
Xác thực
Tất cả các thao tác tạo VM đều yêu cầu xác thực bằng một trong các cách sau:
Khóa API: Bao gồm trong
Authorizationheader dưới dạngBearer YOUR_API_KEYXác thực cơ bản: Tên người dùng và mật khẩu cho các phiên tương tác
Token phiên: Dành cho tích hợp dựa trên web
Tạo VM cơ bản
POST /api/v4/vms
Mô tả: Tạo một máy ảo mới với cấu hình được chỉ định.
Tham số yêu cầu:
name
chuỗi
Có
Tên VM duy nhất
description
chuỗi
Không
Mô tả VM
cluster
chuỗi
Không
ID cụm đích (chuỗi số)
ram
số nguyên
Không
RAM tính bằng MB (mặc định: 1024)
cpu_cores
số nguyên
Không
Số lõi CPU (mặc định: 1)
guest_agent
chuỗi
Không
Bật guest agent ("true"/"false")
console_pass_hash
chuỗi
Không
Mã băm mật khẩu console (chuỗi rỗng nếu không dùng)
video
chuỗi
Không
Kiểu bộ điều hợp video (virtio, std, cirrus, v.v.)
rtc_base
chuỗi
Không
Thiết lập cơ sở RTC (utc, localtime)
uefi
chuỗi
Không
Bật khởi động UEFI ("true"/"false")
Ví dụ nội dung yêu cầu:
Ví dụ phản hồi:
Các trường phản hồi:
location
chuỗi
Endpoint API cho VM đã tạo
dbpath
chuỗi
Đường dẫn cơ sở dữ liệu cho bản ghi VM
$row
số nguyên
Số hàng trong cơ sở dữ liệu
$key
chuỗi
ID VM (được dùng cho các cuộc gọi API tiếp theo)
response.machine
chuỗi
ID máy (được dùng cho ổ đĩa, NIC, thiết bị)
Phản hồi lỗi:
400 Yêu cầu không hợp lệ: tham số cấu hình không hợp lệ409 Xung đột: tên VM đã tồn tại403 Bị cấm: không đủ quyền
VM Key so với Machine Key
VM key (ví dụ, "42"): Dùng cho cài đặt VM như CPU, RAM, console
Machine key (ví dụ, "54"): Dùng cho phần cứng như ổ đĩa, NIC, thiết bị
Bạn sẽ nhận được cả hai khóa trong phản hồi tạo VM
Tạo VM dựa trên recipe
VergeOS hỗ trợ tạo VM phức tạp bằng các recipe bao gồm ổ đĩa, giao diện mạng và thiết bị.
VM hoàn chỉnh với cấu hình recipe
Thêm ổ đĩa
Ổ đĩa phải được tạo riêng sau khi tạo VM bằng endpoint machine drives.
POST /api/v4/machine_drives
Tham số yêu cầu:
machine
chuỗi
Có
ID máy từ quá trình tạo VM
name
chuỗi
Không
Tên ổ đĩa
media
chuỗi
Không
Loại media (disk, cdrom, import, clone, efidisk)
interface
chuỗi
Không
Giao diện ổ đĩa (virtio-scsi, ide, ahci, v.v.)
disksize
số nguyên
Không
Dung lượng ổ đĩa tính bằng byte (cho ổ đĩa mới)
preferred_tier
chuỗi
Không
Tầng lưu trữ (1-5)
media_source
chuỗi
Không
ID media nguồn (cho import/clone/cdrom)
show_pt
chuỗi
Không
Ghi đè tầng ưu tiên ("true"/"false") - ghi đè tầng mặc định của media nguồn
Tạo ổ đĩa khởi động
Ví dụ phản hồi:
Gắn CDROM/ISO
Ví dụ phản hồi:
Nhập từ nguồn media
Thêm thiết bị (GPU, passthrough PCI, v.v.)
POST /api/v4/machine_devices
Mô tả: gắn các thiết bị phần cứng như GPU, thiết bị PCI, thiết bị USB hoặc TPM vào máy ảo.
Tham số yêu cầu:
machine
chuỗi
Có
ID máy
resource_group
chuỗi
Có
UUID của resource group cho thiết bị
settings_args
đối tượng
Không
Cài đặt dành riêng cho thiết bị (đối tượng rỗng cho passthrough cơ bản)
GPU passthrough PCI
Ví dụ phản hồi:
Tìm resource group
Tham số resource_group xác định thiết bị phần cứng cụ thể cần gắn. Dùng các endpoint này để tìm các UUID resource group khả dụng:
GET /api/v4/resource_groups- Thiết bị phần cứng chung (GPU, thiết bị PCI, USB, v.v.)GET /api/v4/node_nvidia_vgpu_devices- Cụ thể là các thiết bị NVIDIA vGPU
Tìm các thiết bị khả dụng
Thêm giao diện mạng
POST /api/v4/machine_nics
Tham số yêu cầu:
machine
chuỗi
Có
ID máy
vnet
chuỗi
Có
ID mạng ảo (khóa của mạng đích)
name
chuỗi
Không
Tên NIC
interface
chuỗi
Không
Loại giao diện NIC (virtio, e1000, v.v.)
đã bật
boolean
Không
Trạng thái bật của NIC
Ví dụ:
Ví dụ phản hồi:
Ví dụ tạo VM hoàn chỉnh
Đây là quy trình làm việc đầy đủ để tạo VM với ổ đĩa, thiết bị và giao diện mạng:
Cập nhật lần cuối
Nội dung này có hữu ích không?