For the complete documentation index, see llms.txt. This page is also available as Markdown.

Python-SDK (pyvergeos)

Automatisieren Sie die VergeOS-Infrastruktur mit dem pyvergeos-Python-SDK — VM-Lebenszyklus, Netzwerk, Multi-Tenancy, Speicher und Disaster Recovery aus Python-Skripten heraus.

Das pyvergeos Das SDK bietet eine Python-ähnliche, typannotierte Schnittstelle für die gesamte VergeOS-REST-API. Anstatt rohe HTTP-Anfragen zu erstellen, arbeiten Sie mit Ressourcenmanagernclient.vms, client.networks, client.tenants — die direkt auf VergeOS-Objekte abgebildet werden. Das SDK übernimmt Authentifizierung, Paginierung, Wiederholungsversuche und das Polling asynchroner Aufgaben, damit Ihre Automatisierungsskripte sauber und auf die Geschäftslogik fokussiert bleiben.

Voraussetzungen & Installation

Voraussetzungen:

  • Python 3.9 oder höher

  • VergeOS 26.0 oder höher

  • Läuft auf Windows, macOS und Linux

Installation von PyPI (empfohlen):

pip install pyvergeos

Oder mit uv (schnellere Alternative):

uv add pyvergeos

Aus dem Quellcode (Entwicklung):

git clone https://github.com/verge-io/pyvergeos.git
cd pyvergeos
pip install .

Authentifizierung

Das SDK unterstützt drei Authentifizierungsmethoden, die jeweils für unterschiedliche Umgebungen geeignet sind.

Benutzername & Passwort

Der einfachste Ansatz für interaktive Skripte und die Entwicklung:

API-Token

Für Produktionsautomatisierung, wenn Sie einen vorab erzeugten API-Schlüssel haben:

Umgebungsvariablen

Der empfohlene Ansatz für die Produktion — hält Zugangsdaten aus dem Quellcode heraus:

Kontextmanager

Verwenden Sie in Produktionscode immer den Kontextmanager, um sicherzustellen, dass Verbindungen ordnungsgemäß geschlossen werden, auch wenn Ausnahmen auftreten:

Ressourcenmanager

Jeder VergeOS-Ressourcentyp wird über einen Ressourcenmanager am Client-Objekt bereitgestellt. Jeder Manager bietet konsistente list(), get(), create()- und Aktionsmethoden.

Virtuelle Maschinen

client.vms — VMs erstellen, konfigurieren, ein-/ausschalten, klonen, Snapshots erstellen und Laufwerke/NICs verwalten.

Netzwerke

client.networks — Virtuelle Netzwerke, Firewall-Regeln, DHCP, DNS und Netzwerk-Energieverwaltung.

Mandanten

client.tenants — Mandantenübergreifende Bereitstellung, Ressourcenisolierung, Snapshots, Speicher- und Netzwerkblöcke.

NAS & Speicher

client.nas — NAS-Dienste, Volumes, CIFS/NFS-Freigaben und Volumesynchronisierung.

Notfallwiederherstellung

client.dr — Cloud-Snapshots, Standort-Synchronisierung und Wiederherstellungs-Workflows.

Benutzer & Gruppen

client.users — Benutzerkonten, Gruppen, Berechtigungen und API-Schlüsselverwaltung.

Aufgaben & Monitoring

client.tasks — Verfolgung asynchroner Aufgaben, Warten, Timeouts. Außerdem: Alarme und Protokolle.

System & GPU

client.clusters, client.nodes, client.gpu — Cluster-/Knoteninformationen, Speicherebenen, GPU-Geräteverwaltung.

Vollständige Ressourcentabelle

Kategorie
Verfügbare Ressourcen

Virtuelle Maschinen

VMs, Laufwerke, NICs, Snapshots

Netzwerk

Netzwerke, Firewall-Regeln, DNS, DHCP, Aliase, Hosts

VPN

IPSec-Verbindungen, WireGuard-Schnittstellen und Peers

NAS/Speicher

NAS-Dienste, Volumes, CIFS/NFS-Freigaben, Volumesynchronisierungen

Mandanten

Mandantenverwaltung, Snapshots, Speicherblöcke, Netzwerkblöcke

Benutzer & Gruppen

Benutzer, Gruppen, Berechtigungen, API-Schlüssel

System

Cluster, Knoten, Speicherebenen, Zertifikate

Überwachung

Alarme, Protokolle, Aufgaben

Backup & DR

Snapshot-Profile, Cloud-Snapshots, Standorte, Standort-Synchronisierungen

Ressourcen filtern

Das SDK bietet drei Ansätze zum Filtern von Ressourcen, von einfachen Schlüsselwortargumenten bis hin zu einem vollständigen OData-Filter-Builder.

Schlüsselwortargumente

Der einfachste Ansatz für grundlegende Filter — Feldnamen direkt übergeben:

OData-Filterzeichenfolgen

Für komplexe Abfragen rohe OData-Filterausdrücke übergeben:

Filter-Builder (Fluent API)

Filter programmgesteuert mit Typsicherheit und Autovervollständigung erstellen:

Verfügbare Filteroperatoren:

Methode
OData-Operator
Beispiel

.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_()

und

Mehrere Bedingungen verketten

.or_()

oder

Alternative Bedingungen kombinieren

Asynchrone Aufgabenverarbeitung

Viele VergeOS-Operationen — Snapshots, Klone, Migrationen — laufen asynchron und geben sofort eine Aufgaben-ID zurück. Das SDK stellt einen Aufgabenmanager zum Abfragen des Abschlusses bereit:

Wenn die Aufgabe innerhalb des Timeouts nicht abgeschlossen wird, wird ein TaskTimeoutError ausgelöst, mit der task_id -Eigenschaft, damit Sie den Status später prüfen können:

Fehlerbehandlung

Das SDK bietet eine strukturierte Ausnahmehierarchie, sodass Sie bestimmte Fehlermodi gezielt abfangen können:

Exception
Beschreibung

VergeError

Basisausnahme für alle SDK-Fehler

AuthenticationError

Ungültige Anmeldedaten oder abgelaufenes Token

NotFoundError

Angeforderte Ressource existiert nicht

ConflictError

Konflikt im Ressourcenstatus (z. B. VM läuft bereits)

ValidationError

Ungültige Parameterwerte

TaskTimeoutError

Aufgabe wurde nicht innerhalb des Timeouts abgeschlossen

TaskError

Aufgabe ist während der Ausführung fehlgeschlagen

Retry-Konfiguration

Das SDK wiederholt vorübergehende Fehler automatisch (HTTP 429, 500, 502, 503, 504) mit exponentiellem Backoff:

Setzen Sie retry_total=0 um Wiederholungen für zeitkritische Vorgänge vollständig zu deaktivieren.

Mandanten-Kontextwechsel

pyvergeos kann in Mandantenkontexte verbinden vom Host-System aus und ermöglicht zentrale Automatisierungsskripte, die Ressourcen über mehrere Mandanten hinweg verwalten:

Dies ist besonders wertvoll für MSPs und Dienstanbieter die die Bereitstellung über Dutzende oder Hunderte von Mandantenumgebungen mit einem einzigen Skript automatisieren müssen.

Praktische Beispiele

Verwaltung des VM-Lebenszyklus

Netzwerk mit Firewall-Regeln

Massenoperationen mit Filterung

Mandantenübergreifender Inventarbericht

Wichtige Hinweise

Kommen Sie von VMware oder Nutanix?

pyvergeos stellt drei Muster bereit, die Sie von Anfang an kennen sollten:

  • Filtern — ein flüssiger Filter() -Builder erzeugt OData-ähnliche Ausdrücke (.eq(), .gt(), .and_(), .or_()), oder Sie können einen rohen OData-String an list(filter=...).

  • Aufgaben-Polling — asynchrone Vorgänge geben einen Aufgabenverweis zurück; client.tasks.wait(task_id, timeout=...) blockiert bis zum Abschluss und löst bei TaskTimeoutError ein Timeout aus.

  • Mandantenkontexttenant.connect() liefert einen Client, der innerhalb des Mandanten kontextgebunden ist, sodass dasselbe Skript das Host-System und jeden untergeordneten Mandanten steuern kann, ohne eine Verbindung zu einem anderen Endpunkt herzustellen.

Zusätzliche Ressourcen

Zuletzt aktualisiert

War das hilfreich?