VergeOS Go SDK (govergeos)
govergeos là một thư viện client Go để quản lý hạ tầng VergeOS thông qua REST API, cung cấp các giao diện an toàn kiểu để tự động hóa VM, mạng, lưu trữ, tenant và khôi phục thảm họa.
Tổng quan
govergeos là một thư viện client Go để quản lý hạ tầng VergeOS thông qua REST API. Nó cung cấp một giao diện Go an toàn kiểu, đúng phong cách Go để tự động hóa vòng đời VM, mạng, lưu trữ, thao tác đa tenant và quy trình phục hồi sau thảm họa, rất phù hợp để xây dựng công cụ, operator và tự động hóa hạ tầng.
Tính năng chính
Quản lý VM: Tạo, cấu hình, điều khiển nguồn, sao chép và snapshot
Mạng nâng cao: Mạng ảo, quy tắc tường lửa, DHCP, DNS, VPN IPSec và WireGuard
NAS & Lưu trữ: Quản lý volume, chia sẻ CIFS/NFS, duyệt volume không đồng bộ và đồng bộ hóa
Đa thuê bao: Cấp phát tenant với cô lập tài nguyên và quản lý node
Khôi phục sau thảm họa: Snapshot đám mây, đồng bộ hóa site và quy trình khôi phục
API an toàn kiểu: Các interface Go đầy đủ để mock, hỗ trợ context và các thao tác đồng thời an toàn với luồng
Không phụ thuộc: Chỉ dùng thư viện chuẩn—không có phụ thuộc bên ngoài
Đa nền tảng: Hỗ trợ Windows, macOS và Linux
Yêu cầu
Go 1.21 trở lên
VergeOS 26.0 trở lên
Cài đặt
Dùng go get
Trong go.mod
Xác thực
SDK hỗ trợ nhiều phương thức xác thực:
Tên người dùng/Mật khẩu
Khóa API
Biến môi trường
VERGEOS_HOST
Có
—
URL cơ sở (ví dụ, https://vergeos.example.com)
VERGEOS_USERNAME
Không*
—
Tên người dùng cho xác thực cơ bản
VERGEOS_PASSWORD
Không*
—
Mật khẩu cho xác thực cơ bản
VERGEOS_API_KEY
Không*
—
Khóa API để xác thực bearer
VERGEOS_VERIFY_SSL
Không
true
Xác minh chứng chỉ TLS
VERGEOS_TIMEOUT
Không
30
Thời gian chờ yêu cầu tính bằng giây
*Cần một trong hai: (USERNAME+PASSWORD) hoặc API_KEY.
Khuyến nghị cho môi trường sản xuất
Sử dụng biến môi trường giúp giữ thông tin xác thực ra khỏi mã nguồn của bạn và dễ dàng dùng các thông tin xác thực khác nhau giữa các môi trường.
Tùy chọn client
Client hỗ trợ các tùy chọn cấu hình bổ sung:
Tài nguyên có sẵn
SDK cung cấp quyền truy cập vào các tài nguyên VergeOS sau:
Máy ảo
VMs, VMDrives, VMNICs, VMSnapshots, VMDevices
Mạng
Networks, VNetRules, VNetAddresses, VNetHosts, VNetDNSViews/Zones/Records
VPN
VNetIPSecs, VNetIPSecPhase1s/Phase2s, VNetWireGuards, VNetWireGuardPeers
NAS/Lưu trữ
NASServices, Volumes, VolumeSnapshots, VolumeCIFSShares, VolumeNFSShares, VolumeSyncs
Tenant
Tenants, TenantNodes, TenantStorage, TenantSnapshots, TenantLayer2Networks
Người dùng & Nhóm
Users, Groups, Members, Permissions, UserAPIKeys
Hệ thống
Clusters, Nodes, Settings, System, Certificates
Giám sát
Alarms, Logs, Tasks, StorageTiers, ClusterTiers
Sao lưu & DR
SnapshotProfiles, CloudSnapshots, Sites, SiteSyncs
Tự động hóa
Files, CloudInitFiles, WebhookURLs, Webhooks
Organization
Tags, TagCategories, TagMembers, ResourceGroups
Ví dụ sử dụng
Quản lý máy ảo
Tạo và quản lý mạng
Lọc tài nguyên
SDK hỗ trợ lọc linh hoạt với các tùy chọn danh sách:
Thao tác đồng thời
SDK an toàn với luồng và hỗ trợ các thao tác đồng thời bằng goroutine:
Hủy context
Tất cả các phương thức chấp nhận một context.Context, cho phép bạn đặt thời gian chờ và xử lý việc hủy cho các thao tác chạy lâu.
Xử lý lỗi
SDK cung cấp các kiểu lỗi cụ thể cho các điều kiện lỗi khác nhau:
APIError
—
Lỗi cơ sở cho mọi lỗi API
AuthError
IsAuthError(err)
Thông tin xác thực không hợp lệ hoặc token đã hết hạn
NotFoundError
IsNotFoundError(err)
Tài nguyên được yêu cầu không tồn tại
ValidationError
IsValidationError(err)
Giá trị tham số không hợp lệ
UnsupportedVersionError
IsUnsupportedVersionError(err)
Phiên bản VergeOS không được hỗ trợ
Các trường hợp sử dụng phổ biến
Tự động hóa hạ tầng: Cấp phát VM, mạng và lưu trữ bằng chương trình
Các operator Kubernetes: Xây dựng các controller tùy chỉnh cho tài nguyên VergeOS
Tích hợp CI/CD: Tạo và hủy môi trường thử nghiệm trong pipeline
Công cụ giám sát: Truy vấn trạng thái tài nguyên và xây dựng dashboard tùy chỉnh
Tự động hóa sao lưu: Lên lịch và quản lý snapshot cùng bản sao lưu đám mây
Cấp phát đa thuê bao: Tự động hóa việc tạo tenant và phân bổ tài nguyên
Tài liệu và tài nguyên
Để có tài liệu đầy đủ, bao gồm tất cả các phương thức có sẵn và ví dụ sử dụng chi tiết, hãy truy cập kho lưu trữ chính thức:
Hỗ trợ
Nếu bạn gặp sự cố hoặc có yêu cầu tính năng, vui lòng mở một issue trên kho lưu trữ GitHub:
Tài nguyên bổ sung
SDK Python (pyvergeos) - Phương án thay thế Python
Nhà cung cấp Terraform - Hạ tầng dưới dạng mã
Cập nhật lần cuối
Nội dung này có hữu ích không?