REST-API & CLI-Tools
Beherrschen Sie die VergeOS-REST-API, das Hilfsskript yb-api und das vrg-CLI für die programmatische Infrastrukturverwaltung und Automatisierung.
Jede Operation, die Sie in der VergeOS-Oberfläche ausführen, wird direkt einer REST-API-Anfrage zugeordnet. Dies API-first-Design bedeutet, dass alles, worauf Sie im Dashboard klicken können – das Erstellen von VMs, das Konfigurieren von Netzwerken, das Verwalten von Mandanten – über HTTP-Endpunkte automatisiert werden kann. Dieser Abschnitt behandelt die drei primären Schnittstellen für den programmgesteuerten Zugriff: die REST-API selbst, das yb-api-Hilfsskript für die Automatisierung auf dem System selbst und die vrg-CLI für die Fernverwaltung.
Übersicht über die REST-API
Die VergeOS-API folgt den üblichen REST-Konventionen mit JSON-Nutzlasten und unterstützt den vollständigen Lebenszyklus jeder Ressource auf der Plattform.
HTTP-Methoden
GET
Ressourcen abrufen
GET /api/v4/vms?fields=most
POST
Ressourcen erstellen oder Aktionen auslösen
POST /api/v4/vms
PUT
Vorhandene Ressourcen aktualisieren
PUT /api/v4/vms/36
DELETE
Ressourcen entfernen
DELETE /api/v4/vms/36
Abfrageparameter
Jede GET-Anfrage unterstützt OData-ähnliche Filterung und Feldauswahl:
Felder— Geben Sie an, welche Felder zurückgegeben werden sollen (z. B.fields=name,$key,ramoderfields=mostfür alle gängigen Felder)filter— OData-ähnliche Filterausdrücke (z. B.filter=is_snapshot eq false)sort— Ergebnisse nach Feld sortieren (z. B.sort=name)limit/offset— Paginierungssteuerung für große Ergebnislisten
Datenformate
Alle API-Antworten werden im JSON-Format zurückgegeben. Die Request-Bodies für POST- und PUT-Operationen müssen ebenfalls JSON mit dem Content-Type: application/json Header sein.
Ratenbegrenzungen
Die API unterstützt maximal 1.000 Anfragen pro Stunde pro API-Schlüssel. Für Automatisierung mit hohem Volumen sollten Sie nach Möglichkeit Batch-Operationen verwenden und eine Wiederholungslogik mit exponentiellem Backoff implementieren.
Authentifizierung
VergeOS unterstützt zwei Authentifizierungsmethoden – Basic-HTTP-Authentifizierung und tokenbasierte Authentifizierung – jeweils für unterschiedliche Anwendungsfälle geeignet. Langzeitgültige API-Schlüssel sind eine Variante der Token-Methode und werden als Bearer-Token statt als Sitzungstoken übergeben:
1. Basic-HTTP-Authentifizierung
Die einfachste Methode – übergeben Sie die Anmeldedaten direkt mit jeder Anfrage. Der gesamte API-Verkehr erfordert HTTPS.
2. Tokenbasierte Authentifizierung (Sitzungstoken)
Fordern Sie ein Sitzungstoken an, indem Sie Anmeldedaten per POST an /sys/tokenssenden. Verwenden Sie das zurückgegebene Token in nachfolgenden Anfragen über den x-yottabyte-token Header:
Bearer-Token-Variante: Langzeitgültige API-Schlüssel
Für die Produktionsautomatisierung erstellen Sie persistente API-Schlüssel über System → Users → [User] → API Keys. Diese Schlüssel sind eine Bearer-Token-Variante der Token-Authentifizierung – sie funktionieren als Bearer-Tokens und bleiben bis zum Ablauf oder zur Löschung gültig:
API-Schlüssel unterstützen IP-Zulassungs-/Sperrlisten für die Sicherheit und konfigurierbare Ablaufdaten. Speichern Sie sie in Umgebungsvariablen statt sie fest zu codieren:
API-Schlüssel werden nur einmal bei der Erstellung angezeigt. Wenn sie verloren gehen, müssen Sie den Schlüssel löschen und einen neuen erstellen.
API Explorer (Swagger)
VergeOS enthält eine integrierte Swagger-Dokumentationsseite die dynamisch aus dem laufenden System generiert wird und jede verfügbare Tabelle und Operation anzeigt.
So greifen Sie darauf zu:
Melden Sie sich in der VergeOS-Oberfläche an
Navigieren Sie zu System → API-Dokumentation
Durchsuchen Sie verfügbare Endpunkte, sehen Sie Schemata an und testen Sie API-Aufrufe direkt
Mit der Swagger-Oberfläche können Sie API-Aufrufe im Browser ausführen und den resultierenden curl Befehl, Antwortkörper und Header anzeigen – dadurch ist sie ein hervorragendes Werkzeug zum Prototyping von Automatisierungsskripten.
Wichtige API-Endpunkte
Die API organisiert Ressourcen in Tabellen. Hier sind die am häufigsten verwendeten Endpunkte:
/api/v4/vms
CRUD-Operationen für virtuelle Maschinen
/api/v4/vm_actions
VM-Energieoperationen, Klonen, Snapshot
/api/v4/machine_drives
VM-Speicherlaufwerke anhängen/verwalten
/api/v4/machine_nics
VM-Netzwerkschnittstellen konfigurieren
/api/v4/machine_devices
GPU-/PCI-Geräte-Passthrough
/api/v4/machine_status/{id}
Laufzeit-Energiezustand und Status
/api/v4/vnets
Verwaltung virtueller Netzwerke
/api/v4/vnet_rules
Firewall- und NAT-Regeln
/api/v4/tenants
Mandantenverwaltung (VDC)
/api/v4/nodes
Informationen zum physischen Knoten
/api/v4/clusters
Cluster-Konfiguration
/api/sys/tokens
Verwaltung von Sitzungstokens
Schema-Introspektion
Hängen Sie /$table an einen beliebigen Endpunkt an, um dessen vollständiges Datenbankschema abzurufen, einschließlich aller verfügbaren Felder und Typen:
API-Übersicht zum VM-Lebenszyklus
Der häufigste Automatisierungs-Workflow ist die Bereitstellung einer vollständigen VM über die API. Dieser vierstufige Prozess spiegelt wider, was die Oberfläche im Hintergrund tut:
Schritt 1: Die VM erstellen
Schritt 2: Ein Speicherlaufwerk hinzufügen
Schritt 3: Eine Netzwerkschnittstelle hinzufügen
Schritt 4: Einschalten
Weitere Aktionen
Sobald die VM existiert, können Sie erweiterte Operationen über denselben vm_actions Endpunkt auslösen:
yb-api-Hilfsskript
Das yb-api ist ein integrierter Kommandozeilen-Wrapper, der auf jedem VergeOS-Knoten per SSH verfügbar ist. Er vereinfacht API-Aufrufe, indem er Authentifizierung, Header, URL-Erstellung, Abfragecodierung und Upload-Verarbeitung für Sie übernimmt.
Grundsyntax
Häufige Optionen
--get
Ressourcen abrufen
--post='JSON'
Eine Ressource mit JSON-Nutzlast erstellen
--put='JSON'
Eine Ressource mit JSON-Nutzlast aktualisieren
--delete
Eine Ressource löschen
--server=IP
Auf ein bestimmtes VergeOS-System zielen
--user=NAME
Als bestimmter Benutzer authentifizieren
--fields='...'
Zu übergebende Felder auswählen
--filter='...'
OData-Filterausdruck
Anwendungsbeispiele
Das yb-api ist ideal für schnelle Ad-hoc-Abfragen und Skripting direkt auf VergeOS-Knoten. Für die Fernautomatisierung von Arbeitsstationen aus verwenden Sie die vrg-CLI oder die Python-/PowerShell-SDKs.
vrg-CLI
Das vrg Befehlszeilentool bietet eine voll ausgestattete Schnittstelle für die Fernverwaltung von VergeOS, in Python erstellt, mit über 200 Befehlen für VMs, Netzwerke, Speicher, Mandanten und Systemadministration.
Installation
Die vrg-CLI wird über mehrere Kanäle verteilt — wählen Sie den, der zu Ihrer Umgebung passt. Keiner davon ist an ein Betriebssystem gebunden; pipx ist der empfohlene Weg auf jedem unterstützten OS.
Eine eigenständige Binärdatei (kein Python erforderlich) wird ebenfalls veröffentlicht für Linux x86_64, macOS ARM64, und Windows x86_64 — nützlich für Windows-Hosts ohne Python-Toolchain.
Wichtige Funktionen
VM-Verwaltung
Virtuelle Maschinen mit einfachen Befehlen erstellen, auflisten, starten, stoppen, Snapshots erstellen, klonen und löschen.
Netzwerkoperationen
Virtuelle Netzwerke, Firewall-Regeln, DHCP-Einstellungen und VPN-Konfigurationen verwalten.
Speicherverwaltung
NAS-Volumes, CIFS-/NFS-Freigaben verwalten und vSAN-Tiers überwachen.
Mandantenverwaltung
Mandanten bereitstellen, Ressourcen zuweisen und Multi-Tenant-Umgebungen verwalten.
Die vrg-CLI umschließt dieselbe oben dokumentierte REST-API und bietet Tab-Vervollständigung, formatierten Output und eine ergonomischere Oberfläche für den täglichen Betrieb von Ihrem Arbeitsplatz aus.
API-Fehlerbehandlung
Wenn API-Aufrufe fehlschlagen, gibt VergeOS standardmäßige HTTP-Statuscodes mit beschreibenden JSON-Fehlerkörpern zurück:
401
Nicht autorisiert
Ungültige Anmeldedaten oder abgelaufenes Token
403
Verboten
Unzureichende Berechtigungen für die Operation
404
Nicht gefunden
Ressource existiert nicht oder ungültiger Endpunkt
409
Konflikt
Konflikt im Ressourcenstatus (z. B. VM läuft bereits)
422
Validierungsfehler
Ungültige Parameter oder fehlende erforderliche Felder
429
Ratenbegrenzung erreicht
Limit von 1.000 Anfragen/Stunde überschritten
500
Serverfehler
Interner Fehler — Systemprotokolle prüfen
Bewährte Methoden für die API-Automatisierung
Verwenden Sie API-Schlüssel für die Produktionsautomatisierung statt Sitzungstoken — sie laufen bei Inaktivität nicht ab
Wenden Sie IP-Einschränkungen an für API-Schlüssel an, um zu begrenzen, wo sie verwendet werden können
Bestimmte Felder auswählen (
fields=name,$key,ram) stattfields=mostum die Nutzlastgröße zu reduzierenPaginierung implementieren mit
limitundoffsetfür große ErgebnislistenAsynchrone Operationen behandeln — Aktionen wie Klonen und Snapshot werden sofort zurückgegeben; abfragen
machine_statusbis zum AbschlussAnmeldedaten in Umgebungsvariablen speichern — Tokens niemals fest in Skripten hinterlegen
Schema-Introspektion verwenden (
/$table), um verfügbare Felder vor dem Schreiben von Automatisierungen zu ermitteln
Wie geht es weiter
Jetzt, da Sie die rohe API verstanden haben, behandeln die folgenden Seiten höherstufige Werkzeuge, die diese API in sprachnative Schnittstellen einbetten:
Python SDK (pyvergeos) — Pythonischer, typannotierter Wrapper mit Ressourcenmanagern und OData-Filter-Builder
PowerShell-Modul (PSVergeOS) — über 200 Cmdlets mit Pipeline-Unterstützung für Windows-native Automatisierung
Zuletzt aktualisiert
War das hilfreich?