Python SDK (pyvergeos)
Tự động hóa hạ tầng VergeOS với Python SDK pyvergeos — vòng đời VM, mạng, đa tenant, lưu trữ và khôi phục sau thảm họa từ các script Python.
Tính năng pyvergeos SDK cung cấp một giao diện kiểu Python, có chú thích kiểu cho toàn bộ VergeOS REST API. Thay vì tạo các yêu cầu HTTP thô, bạn làm việc với các trình quản lý tài nguyên — client.vms, client.networks, client.tenants — ánh xạ trực tiếp đến các đối tượng VergeOS. SDK xử lý xác thực, phân trang, thử lại và thăm dò tác vụ bất đồng bộ để các script tự động hóa của bạn luôn gọn gàng và tập trung vào logic nghiệp vụ.
Yêu cầu & Cài đặt
Điều kiện tiên quyết:
Python 3.9 hoặc mới hơn
VergeOS 26.0 hoặc mới hơn
Hoạt động trên Windows, macOS và Linux
Cài đặt từ PyPI (khuyến nghị):
pip install pyvergeosHoặc với uv (lựa chọn nhanh hơn):
uv add pyvergeosTừ mã nguồn (phát triển):
git clone https://github.com/verge-io/pyvergeos.git
cd pyvergeos
pip install .Xác thực
SDK hỗ trợ ba phương thức xác thực, mỗi phương thức phù hợp với các môi trường khác nhau.
Tên người dùng & Mật khẩu
Cách đơn giản nhất cho script tương tác và phát triển:
API Token
Cho tự động hóa sản xuất khi bạn có sẵn một API key đã tạo trước:
Biến môi trường
Cách được khuyến nghị cho môi trường sản xuất — giữ thông tin xác thực ngoài mã nguồn:
Trình quản lý ngữ cảnh
Luôn dùng trình quản lý ngữ cảnh trong mã sản xuất để đảm bảo kết nối được đóng đúng cách, ngay cả khi có ngoại lệ xảy ra:
Trình quản lý tài nguyên
Mỗi loại tài nguyên VergeOS đều được hiển thị thông qua một trình quản lý tài nguyên trên đối tượng client. Mỗi trình quản lý cung cấp list(), get(), create()và các phương thức hành động.
Máy ảo
client.vms — Tạo, cấu hình, điều khiển nguồn, nhân bản, snapshot và quản lý ổ đĩa/NIC cho VM.
Mạng
client.networks — Mạng ảo, quy tắc tường lửa, DHCP, DNS và quản lý nguồn mạng.
Tenants
client.tenants — Cấp phát đa thuê bao, cô lập tài nguyên, snapshot, khối lưu trữ và khối mạng.
NAS & Lưu trữ
client.nas — Dịch vụ NAS, volume, chia sẻ CIFS/NFS và đồng bộ volume.
Khôi phục sau thảm họa
client.dr — Snapshot đám mây, đồng bộ site và quy trình khôi phục.
Người dùng & Nhóm
client.users — Tài khoản người dùng, nhóm, quyền và quản lý khóa API.
Tác vụ & Giám sát
client.tasks — Theo dõi tác vụ bất đồng bộ, chờ đợi, thời gian chờ. Ngoài ra: cảnh báo và nhật ký.
Hệ thống & GPU
client.clusters, client.nodes, client.gpu — Thông tin cụm/nút, các tầng lưu trữ, quản lý thiết bị GPU.
Bảng tài nguyên đầy đủ
Máy ảo
VM, ổ đĩa, NIC, snapshot
Mạng
Mạng, quy tắc tường lửa, DNS, DHCP, bí danh, máy chủ
VPN
Kết nối IPSec, giao diện và peer WireGuard
NAS/Lưu trữ
Dịch vụ NAS, volume, chia sẻ CIFS/NFS, đồng bộ volume
Tenants
Quản lý tenant, snapshot, khối lưu trữ, khối mạng
Người dùng & Nhóm
Người dùng, nhóm, quyền, khóa API
Hệ thống
Cụm, nút, các tầng lưu trữ, chứng chỉ
Giám sát
Cảnh báo, nhật ký, tác vụ
Sao lưu & DR
Hồ sơ snapshot, snapshot đám mây, site, đồng bộ site
Lọc tài nguyên
SDK cung cấp ba cách để lọc tài nguyên, từ các tham số từ khóa đơn giản đến một trình tạo bộ lọc OData đầy đủ.
Tham số từ khóa
Cách đơn giản nhất cho các bộ lọc cơ bản — truyền trực tiếp tên trường:
Chuỗi lọc OData
Đối với các truy vấn phức tạp, hãy truyền trực tiếp biểu thức lọc OData:
Trình tạo bộ lọc (Fluent API)
Xây dựng bộ lọc bằng lập trình với an toàn kiểu và tự động hoàn thành:
Các toán tử lọc khả dụng:
.eq()
eq
Filter().eq("status", "running")
.ne()
ne
Filter().ne("os_family", "windows")
.gt()
gt
Filter().gt("ram", 4096)
.lt()
lt
Filter().lt("cpu_cores", 8)
.ge()
ge
Filter().ge("ram", 2048)
.le()
le
Filter().le("ram", 8192)
.and_()
và
Nối nhiều điều kiện
.or_()
hoặc
Kết hợp các điều kiện thay thế
Xử lý tác vụ bất đồng bộ
Nhiều thao tác VergeOS — snapshot, nhân bản, di chuyển — chạy bất đồng bộ và trả về ngay một task ID. SDK cung cấp trình quản lý tác vụ để thăm dò trạng thái hoàn thành:
Nếu tác vụ không hoàn thành trong thời gian chờ, TaskTimeoutError sẽ được ném ra cùng với thuộc tính task_id để bạn có thể kiểm tra trạng thái sau:
Xử lý lỗi
SDK cung cấp một hệ thống ngoại lệ có cấu trúc để bạn có thể bắt các chế độ lỗi cụ thể:
VergeError
Ngoại lệ cơ sở cho mọi lỗi của SDK
AuthenticationError
Thông tin xác thực không hợp lệ hoặc token đã hết hạn
NotFoundError
Tài nguyên được yêu cầu không tồn tại
ConflictError
Xung đột trạng thái tài nguyên (ví dụ: VM đã chạy)
ValidationError
Giá trị tham số không hợp lệ
TaskTimeoutError
Tác vụ không hoàn thành trong thời gian chờ
TaskError
Tác vụ thất bại trong quá trình thực thi
Cấu hình thử lại
SDK tự động thử lại các lỗi tạm thời (HTTP 429, 500, 502, 503, 504) với cơ chế backoff lũy tiến:
Đặt retry_total=0 để tắt hoàn toàn việc thử lại cho các thao tác nhạy cảm về thời gian.
Chuyển đổi ngữ cảnh Tenant
pyvergeos có thể kết nối vào các ngữ cảnh tenant từ hệ thống host, cho phép các script tự động hóa tập trung quản lý tài nguyên trên nhiều tenant:
Điều này đặc biệt hữu ích cho Các MSP và nhà cung cấp dịch vụ cần tự động hóa việc cấp phát trên hàng chục hoặc hàng trăm môi trường tenant từ một script duy nhất.
Ví dụ thực tế
Quản lý vòng đời VM
Mạng với quy tắc tường lửa
Thao tác hàng loạt với lọc
Báo cáo kiểm kê đa tenant
Ghi chú quan trọng
An toàn luồng
Client pyvergeos không an toàn luồng. Nếu bạn cần các thao tác đồng thời, hãy tạo các VergeClient riêng biệt cho từng luồng. Với các khối lượng công việc thực sự song song, hãy cân nhắc govergeos Go SDK được thiết kế để sử dụng đồng thời với goroutine.
Tài nguyên bổ sung
Kho lưu trữ GitHub — Mã nguồn, vấn đề và đóng góp
Gói PyPI — Bản phát hành mới nhất và lịch sử phiên bản
Cập nhật lần cuối
Nội dung này có hữu ích không?