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

SDK Python (pyvergeos)

Automatisez l’infrastructure VergeOS avec le SDK Python pyvergeos — cycle de vie des VM, réseau, multi-locataire, stockage et reprise après sinistre depuis des scripts Python.

Le pyvergeos Le SDK fournit une interface typée, de style Python, pour l’ensemble de l’API REST VergeOS. Plutôt que de créer des requêtes HTTP brutes, vous travaillez avec des gestionnaires de ressourcesclient.vms, client.networks, client.tenants — qui correspondent directement aux objets VergeOS. Le SDK gère l’authentification, la pagination, les nouvelles tentatives et le sondage des tâches asynchrones afin que vos scripts d’automatisation restent propres et centrés sur la logique métier.

Prérequis et installation

Prérequis :

  • Python 3.9 ou version ultérieure

  • VergeOS 26.0 ou version ultérieure

  • Fonctionne sur Windows, macOS et Linux

Installer depuis PyPI (recommandé) :

pip install pyvergeos

Ou avec uv (alternative plus rapide) :

uv add pyvergeos

Depuis les sources (développement) :

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

Authentification

Le SDK prend en charge trois méthodes d’authentification, chacune adaptée à des environnements différents.

Nom d’utilisateur et mot de passe

L’approche la plus simple pour les scripts interactifs et le développement :

Jeton API

Pour l’automatisation en production, lorsque vous disposez d’une clé API pré-générée :

Variables d’environnement

L’approche recommandée pour la production — elle garde les identifiants hors du code स्रोत :

Gestionnaire de contexte

Utilisez toujours le gestionnaire de contexte dans le code de production afin de garantir que les connexions sont correctement fermées, même lorsque des exceptions se produisent :

Gestionnaires de ressources

Chaque type de ressource VergeOS est exposé via un gestionnaire de ressources sur l’objet client. Chaque gestionnaire fournit des méthodes cohérentes list(), get(), create(), et des méthodes d’action.

Machines virtuelles

client.vms — Crée, configure, contrôle l’alimentation, clone, prend des instantanés et gère les disques/cartes réseau des VM.

Réseaux

client.networks — Réseaux virtuels, règles de pare-feu, DHCP, DNS et gestion de l’alimentation du réseau.

Locataires

client.tenants — Provisioning multi-locataire, isolement des ressources, instantanés, blocs de stockage et blocs réseau.

NAS et stockage

client.nas — Services NAS, volumes, partages CIFS/NFS et synchronisation des volumes.

Récupération après sinistre

client.dr — Instantanés cloud, synchronisation des sites et workflows de récupération.

Utilisateurs et groupes

client.users — Comptes utilisateurs, groupes, permissions et gestion des clés API.

Tâches et supervision

client.tasks — Suivi asynchrone des tâches, attente, délais d’expiration. Aussi : alarmes et journaux.

Système et GPU

client.clusters, client.nodes, client.gpu — Informations sur les clusters/nœuds, niveaux de stockage, gestion des périphériques GPU.

Table complète des ressources

Catégorie
Ressources disponibles

Machines virtuelles

VM, disques, cartes réseau, instantanés

Réseau

Réseaux, règles de pare-feu, DNS, DHCP, alias, hôtes

VPN

Connexions IPSec, interfaces et pairs WireGuard

NAS/Stockage

Services NAS, volumes, partages CIFS/NFS, synchronisations de volumes

Locataires

Gestion des locataires, instantanés, blocs de stockage, blocs réseau

Utilisateurs et groupes

Utilisateurs, groupes, permissions, clés API

Système

Clusters, nœuds, niveaux de stockage, certificats

Surveillance

Alarmes, journaux, tâches

Sauvegarde et reprise après sinistre

Profils d’instantanés, instantanés cloud, sites, synchronisations de sites

Filtrage des ressources

Le SDK propose trois approches pour filtrer les ressources, des simples arguments de mot-clé à un constructeur de filtres OData complet.

Arguments de mots-clés

L’approche la plus simple pour les filtres de base — passez directement les noms de champs :

Chaînes de filtre OData

Pour les requêtes complexes, passez des expressions de filtre OData brutes :

Constructeur de filtres (API fluide)

Construisez des filtres par programme avec sécurité de type et auto-complétion :

Opérateurs de filtre disponibles :

Méthode
Opérateur OData
Exemple

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

et

Enchaîner plusieurs conditions

.or_()

ou

Combiner des conditions alternatives

Gestion des tâches asynchrones

De nombreuses opérations VergeOS — instantanés, clones, migrations — s’exécutent de manière asynchrone et renvoient immédiatement un ID de tâche. Le SDK fournit un gestionnaire de tâches pour interroger l’achèvement :

Si la tâche ne se termine pas avant l’expiration du délai, une TaskTimeoutError est levée avec la task_id propriété afin que vous puissiez vérifier l’état plus tard :

Gestion des erreurs

Le SDK fournit une hiérarchie structurée d’exceptions afin que vous puissiez intercepter des modes d’échec spécifiques :

Exception
Description

VergeError

Exception de base pour toutes les erreurs du SDK

AuthenticationError

Identifiants invalides ou jeton expiré

NotFoundError

La ressource demandée n’existe pas

ConflictError

Conflit d’état de la ressource (par ex., VM déjà en cours d’exécution)

ValidationError

Valeurs de paramètres invalides

TaskTimeoutError

La tâche ne s’est pas terminée avant l’expiration du délai

TaskError

La tâche a échoué pendant l’exécution

Configuration des nouvelles tentatives

Le SDK réessaie automatiquement les erreurs transitoires (HTTP 429, 500, 502, 503, 504) avec une temporisation exponentielle :

Définissez retry_total=0 pour désactiver complètement les nouvelles tentatives pour les opérations sensibles au temps.

Changement de contexte de locataire

pyvergeos peut se connecter dans des contextes de locataire depuis le système hôte, ce qui permet des scripts d’automatisation centralisés qui gèrent des ressources sur plusieurs locataires :

C’est particulièrement utile pour Les MSP et les fournisseurs de services qui doivent automatiser le provisioning sur des dizaines ou des centaines d’environnements locataires à partir d’un seul script.

Exemples pratiques

Gestion du cycle de vie des VM

Réseau avec règles de pare-feu

Opérations en masse avec filtrage

Rapport d’inventaire multi-locataire

Remarques importantes

Vous venez de VMware ou de Nutanix ?

pyvergeos expose trois modèles qu’il vaut la peine de connaître dès le départ :

  • Filtrage — un Filter() constructeur fluide produit des expressions de style OData (.eq(), .gt(), .and_(), .or_()), ou vous pouvez transmettre une chaîne OData brute à list(filter=...).

  • Interrogation des tâches — les opérations asynchrones renvoient une référence de tâche ; client.tasks.wait(task_id, timeout=...) bloque jusqu’à l’achèvement et lève TaskTimeoutError en cas d’expiration du délai.

  • Contexte du locatairetenant.connect() renvoie un client limité au locataire, de sorte que le même script peut piloter le système hôte et n’importe quel locataire enfant sans se reconnecter à un autre point de terminaison.

Ressources supplémentaires

Mis à jour

Ce contenu vous a-t-il été utile ?