REST API & công cụ CLI
Làm chủ REST API của VergeOS, script trợ giúp yb-api và vrg CLI cho quản lý hạ tầng theo chương trình và tự động hóa.
Mọi thao tác bạn thực hiện trong giao diện VergeOS đều ánh xạ trực tiếp thành một lời gọi REST API. Điều này thiết kế ưu tiên API có nghĩa là bất cứ thứ gì bạn có thể nhấp trong bảng điều khiển — tạo VM, cấu hình mạng, quản lý tenant — đều có thể được tự động hóa thông qua các điểm cuối HTTP. Phần này bao gồm ba giao diện chính để truy cập theo chương trình: REST API bản thân, script trợ giúp yb-api để tự động hóa trên máy cục bộ, và CLI vrg để quản lý từ xa.
Tổng quan REST API
API VergeOS tuân theo các quy ước REST tiêu chuẩn với các payload JSON, hỗ trợ toàn bộ vòng đời của mọi tài nguyên trong nền tảng.
Các phương thức HTTP
GET
Truy xuất tài nguyên
GET /api/v4/vms?fields=most
POST
Tạo tài nguyên hoặc kích hoạt hành động
POST /api/v4/vms
PUT
Cập nhật tài nguyên hiện có
PUT /api/v4/vms/36
DELETE
Xóa tài nguyên
DELETE /api/v4/vms/36
Tham số truy vấn
Mọi yêu cầu GET đều hỗ trợ lọc và chọn trường theo kiểu OData:
các trường— Chỉ định những trường cần trả về (ví dụ,fields=name,$key,ramhoặcfields=mostcho tất cả các trường thông dụng)filter— Biểu thức lọc kiểu OData (ví dụ,filter=is_snapshot eq false)sort— Sắp xếp kết quả theo trường (ví dụ,sort=name)limit/offset— Điều khiển phân trang cho các tập kết quả lớn
Định dạng dữ liệu
Tất cả phản hồi API đều được trả về ở định dạng JSON. Phần thân yêu cầu cho các thao tác POST và PUT cũng phải là JSON với tiêu đề Content-Type: application/json .
Giới hạn tốc độ
API hỗ trợ tối đa 1.000 yêu cầu mỗi giờ cho mỗi khóa API. Với tự động hóa khối lượng lớn, hãy gom lô khi có thể và triển khai logic thử lại với backoff theo cấp số nhân.
Xác thực
VergeOS hỗ trợ hai phương thức xác thực — xác thực HTTP Basic và xác thực dựa trên token — mỗi phương thức phù hợp với các trường hợp sử dụng khác nhau. Khóa API dài hạn là một biến thể của phương thức token, được trình bày dưới dạng Bearer token thay vì token phiên:
1. Xác thực HTTP Basic
Phương thức đơn giản nhất — truyền trực tiếp thông tin xác thực với mỗi yêu cầu. Mọi lưu lượng API đều yêu cầu HTTPS.
2. Xác thực dựa trên token (Token phiên)
Yêu cầu token phiên bằng cách POST thông tin xác thực tới /sys/tokens. Sử dụng token trả về trong các yêu cầu tiếp theo thông qua tiêu đề x-yottabyte-token tiêu đề:
Biến thể Bearer-Token: khóa API dài hạn
Đối với tự động hóa trong môi trường sản xuất, hãy tạo các khóa API bền vững thông qua System → Users → [User] → API Keys. Các khóa này là một biến thể Bearer-token của xác thực token — chúng hoạt động như Bearer token và vẫn hợp lệ cho đến khi hết hạn hoặc bị xóa:
Khóa API hỗ trợ danh sách cho phép/từ chối IP để bảo mật và có thể cấu hình ngày hết hạn. Hãy lưu chúng trong biến môi trường thay vì mã hóa cứng:
Khóa API chỉ được hiển thị một lần tại thời điểm tạo. Nếu bị mất, bạn phải xóa khóa đó và tạo khóa mới.
API Explorer (Swagger)
VergeOS bao gồm sẵn một trang tài liệu Swagger được tạo động từ hệ thống đang chạy, hiển thị mọi bảng và thao tác hiện có.
Để truy cập:
Đăng nhập vào giao diện VergeOS
Đi tới Hệ thống → Tài liệu API
Duyệt các điểm cuối khả dụng, xem schema và kiểm thử các lời gọi API trực tiếp
Giao diện Swagger cho phép bạn thực thi các lời gọi API ngay trong trình duyệt và xem curl lệnh, phần thân phản hồi và các tiêu đề — khiến nó trở thành một công cụ tuyệt vời để tạo mẫu các script tự động hóa.
Các điểm cuối API chính
API tổ chức các tài nguyên thành các bảng. Dưới đây là những điểm cuối được dùng phổ biến nhất:
/api/v4/vms
Các thao tác CRUD máy ảo
/api/v4/vm_actions
Các thao tác nguồn máy ảo, clone, snapshot
/api/v4/machine_drives
Gắn/kết nối và quản lý ổ đĩa lưu trữ VM
/api/v4/machine_nics
Cấu hình giao diện mạng của VM
/api/v4/machine_devices
Passthrough thiết bị GPU/PCI
/api/v4/machine_status/{id}
Trạng thái nguồn và trạng thái lúc chạy
/api/v4/vnets
Quản lý mạng ảo
/api/v4/vnet_rules
Quy tắc tường lửa và NAT
/api/v4/tenants
Quản lý tenant (VDC)
/api/v4/nodes
Thông tin nút vật lý
/api/v4/clusters
Cấu hình cụm
/api/sys/tokens
Quản lý token phiên
Kiểm tra schema
Thêm hậu tố /$table vào bất kỳ điểm cuối nào để truy xuất toàn bộ schema cơ sở dữ liệu của nó, bao gồm tất cả các trường và kiểu khả dụng:
Hướng dẫn API vòng đời VM
Quy trình tự động hóa phổ biến nhất là cấp phát một VM hoàn chỉnh thông qua API. Quy trình bốn bước này phản ánh những gì giao diện người dùng thực hiện ở phía sau:
Bước 1: Tạo VM
Bước 2: Thêm ổ đĩa lưu trữ
Bước 3: Thêm giao diện mạng
Bước 4: Bật nguồn
Các hành động bổ sung
Khi VM đã tồn tại, bạn có thể kích hoạt các thao tác nâng cao thông qua cùng một vm_actions điểm cuối:
Script trợ giúp yb-api
Tính năng yb-api script là một bộ bao bọc dòng lệnh tích hợp sẵn, có trên mọi nút VergeOS qua SSH. Nó đơn giản hóa các lời gọi API bằng cách xử lý xác thực, tiêu đề, dựng URL, mã hóa truy vấn và xử lý tải lên cho bạn.
Cú pháp cơ bản
Tùy chọn phổ biến
--get
Truy xuất tài nguyên
--post='JSON'
Tạo một tài nguyên với payload JSON
--put='JSON'
Cập nhật một tài nguyên với payload JSON
--delete
Xóa một tài nguyên
--server=IP
Nhắm tới một hệ thống VergeOS cụ thể
--user=NAME
Xác thực với tư cách một người dùng cụ thể
--fields='...'
Chọn các trường sẽ trả về
--filter='...'
Biểu thức lọc OData
Ví dụ sử dụng
Tính năng yb-api script lý tưởng cho các truy vấn ad-hoc nhanh và viết script trực tiếp trên các nút VergeOS. Đối với tự động hóa từ xa từ máy trạm, hãy dùng CLI vrg hoặc các SDK Python/PowerShell.
CLI vrg
Tính năng vrg công cụ dòng lệnh cung cấp giao diện quản lý từ xa đầy đủ tính năng cho VergeOS, được xây dựng bằng Python với hơn 200 lệnh bao phủ VM, mạng, lưu trữ, tenant và quản trị hệ thống.
Cài đặt
CLI vrg được phân phối qua nhiều kênh — hãy chọn kênh phù hợp với môi trường của bạn. Không kênh nào bị giới hạn theo hệ điều hành; pipx là đường dẫn được khuyến nghị trên mọi hệ điều hành được hỗ trợ.
Cũng có sẵn một binary độc lập (không cần Python) cho Linux x86_64, macOS ARM64, và Windows x86_64 — hữu ích cho các máy chủ Windows không có bộ công cụ Python.
Khả năng chính
Quản lý VM
Tạo, liệt kê, khởi động, dừng, snapshot, nhân bản và xóa máy ảo bằng các lệnh đơn giản.
Thao tác mạng
Quản lý mạng ảo, quy tắc tường lửa, cài đặt DHCP và cấu hình VPN.
Kiểm soát lưu trữ
Quản trị các volume NAS, chia sẻ CIFS/NFS và giám sát các tầng vSAN.
Quản lý tenant
Cấp phát tenant, phân bổ tài nguyên và quản lý môi trường đa tenant.
CLI vrg bao bọc cùng REST API đã được tài liệu hóa ở trên, cung cấp tự động hoàn thành tab, đầu ra được định dạng và giao diện thân thiện hơn cho các thao tác hằng ngày từ máy trạm của bạn.
Xử lý lỗi API
Khi các lời gọi API thất bại, VergeOS trả về các mã trạng thái HTTP tiêu chuẩn cùng phần thân lỗi JSON mô tả:
401
Không được ủy quyền
Thông tin xác thực không hợp lệ hoặc token đã hết hạn
403
Bị cấm
Không đủ quyền cho thao tác
404
Không tìm thấy
Tài nguyên không tồn tại hoặc điểm cuối không hợp lệ
409
Xung đột
Xung đột trạng thái tài nguyên (ví dụ: VM đã chạy)
422
Lỗi xác thực
Tham số không hợp lệ hoặc thiếu trường bắt buộc
429
Bị giới hạn tốc độ
Vượt quá giới hạn 1.000 yêu cầu/giờ
500
Lỗi máy chủ
Lỗi nội bộ — kiểm tra nhật ký hệ thống
Các thực hành tốt nhất cho tự động hóa API
Dùng khóa API cho tự động hóa sản xuất thay vì token phiên — chúng không hết hạn khi không hoạt động
Áp dụng các hạn chế IP trên khóa API để giới hạn nơi chúng có thể được dùng
Chọn các trường cụ thể (
fields=name,$key,ram) thay vìfields=mostđể giảm kích thước tải trọngTriển khai phân trang với
limitvàoffsetcho các tập kết quả lớnXử lý các thao tác không đồng bộ — các hành động như clone và snapshot trả về ngay; thăm dò
machine_statusđể hoàn tấtLưu thông tin xác thực trong biến môi trường — đừng bao giờ mã hóa cứng token trong script
Sử dụng kiểm tra schema (
/$table) để khám phá các trường khả dụng trước khi viết tự động hóa
Tiếp theo là gì
Giờ bạn đã hiểu API thô, các trang sau sẽ đề cập đến các công cụ cấp cao hơn bọc API này thành các giao diện bản địa theo ngôn ngữ:
Python SDK (pyvergeos) — bộ bao bọc kiểu Python, có chú thích kiểu, với trình quản lý tài nguyên và trình tạo bộ lọc OData
Mô-đun PowerShell (PSVergeOS) — hơn 200 cmdlet với hỗ trợ pipeline cho tự động hóa bản địa Windows
Cập nhật lần cuối
Nội dung này có hữu ích không?