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

SDK de Python (pyvergeos)

Automatiza la infraestructura de VergeOS con el SDK de Python pyvergeos: ciclo de vida de VM, redes, multitenencia, almacenamiento y recuperación ante desastres desde scripts de Python.

La pyvergeos El SDK proporciona una interfaz de estilo Python, con anotaciones de tipo, para toda la API REST de VergeOS. En lugar de crear solicitudes HTTP en bruto, trabajas con gestores de recursos — client.vms, client.networks, client.tenants — que se asignan directamente a objetos de VergeOS. El SDK se encarga de la autenticación, la paginación, los reintentos y el sondeo de tareas asíncronas para que tus scripts de automatización se mantengan limpios y centrados en la lógica de negocio.

Requisitos e instalación

Requisitos previos:

  • Python 3.9 o superior

  • VergeOS 26.0 o superior

  • Funciona en Windows, macOS y Linux

Instalar desde PyPI (recomendado):

pip install pyvergeos

O con uv (alternativa más rápida):

uv add pyvergeos

Desde el código fuente (desarrollo):

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

Autenticación

El SDK admite tres métodos de autenticación, cada uno adecuado para distintos entornos.

Nombre de usuario y contraseña

La forma más simple para scripts interactivos y desarrollo:

Token de API

Para automatización en producción cuando ya tienes una clave API generada previamente:

Variables de entorno

La forma recomendada para producción — mantiene las credenciales fuera del código fuente:

Gestor de contexto

Usa siempre el gestor de contexto en el código de producción para garantizar que las conexiones se cierren correctamente, incluso cuando ocurran excepciones:

Gestores de recursos

Cada tipo de recurso de VergeOS se expone a través de un gestor de recursos en el objeto cliente. Cada gestor proporciona métodos coherentes list(), get(), create()y métodos de acción.

Máquinas virtuales

client.vms — Crea, configura, controla la energía, clona, toma instantáneas y administra discos/NICs para las VM.

Redes

client.networks — Redes virtuales, reglas de firewall, DHCP, DNS y control de energía de la red.

Inquilinos

client.tenants — Aprovisionamiento multi-tenant, aislamiento de recursos, instantáneas, bloques de almacenamiento y bloques de red.

NAS y almacenamiento

client.nas — Servicios NAS, volúmenes, comparticiones CIFS/NFS y sincronización de volúmenes.

Recuperación ante desastres

client.dr — Instantáneas en la nube, sincronización de sitios y flujos de recuperación.

Usuarios y grupos

client.users — Cuentas de usuario, grupos, permisos y gestión de claves API.

Tareas y monitorización

client.tasks — Seguimiento asíncrono de tareas, espera y tiempos de espera. También: alarmas y registros.

Sistema y GPU

client.clusters, client.nodes, client.gpu — Información de clústeres/nodos, niveles de almacenamiento y gestión de dispositivos GPU.

Tabla completa de recursos

Categoría
Recursos disponibles

Máquinas virtuales

VM, discos, NIC, instantáneas

Redes

Redes, reglas de firewall, DNS, DHCP, alias, hosts

VPN

Conexiones IPSec, interfaces WireGuard y peers

NAS/Almacenamiento

Servicios NAS, volúmenes, comparticiones CIFS/NFS, sincronizaciones de volúmenes

Inquilinos

Gestión de tenants, instantáneas, bloques de almacenamiento, bloques de red

Usuarios y grupos

Usuarios, grupos, permisos, claves API

Sistema

Clústeres, nodos, niveles de almacenamiento, certificados

Supervisión

Alarmas, registros, tareas

Copias de seguridad y recuperación ante desastres

Perfiles de instantáneas, instantáneas en la nube, sitios, sincronizaciones de sitios

Filtrado de recursos

El SDK ofrece tres enfoques para filtrar recursos, desde argumentos de palabra clave simples hasta un generador completo de filtros OData.

Argumentos de palabra clave

La forma más simple para filtros básicos: pasa directamente los nombres de los campos:

Cadenas de filtro OData

Para consultas complejas, pasa expresiones de filtro OData en bruto:

Generador de filtros (API fluida)

Construye filtros programáticamente con seguridad de tipos y autocompletado:

Operadores de filtro disponibles:

Método
Operador OData
Ejemplo

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

y

Encadena varias condiciones

.or_()

o

Combina condiciones alternativas

Gestión de tareas asíncronas

Muchas operaciones de VergeOS — instantáneas, clones, migraciones — se ejecutan asíncronamente y devuelven un ID de tarea de inmediato. El SDK proporciona un gestor de tareas para consultar la finalización:

Si la tarea no se completa dentro del tiempo de espera, se TaskTimeoutError lanza con la task_id propiedad para que puedas comprobar el estado más tarde:

Manejo de errores

El SDK proporciona una jerarquía estructurada de excepciones para que puedas capturar modos de fallo específicos:

Excepción
Descripción

VergeError

Excepción base para todos los errores del SDK

AuthenticationError

Credenciales inválidas o token caducado

NotFoundError

El recurso solicitado no existe

ConflictError

Conflicto de estado del recurso (por ejemplo, la VM ya está en ejecución)

ValidationError

Valores de parámetros no válidos

TaskTimeoutError

La tarea no se completó dentro del tiempo de espera

TaskError

La tarea falló durante la ejecución

Configuración de reintentos

El SDK reintenta automáticamente los errores transitorios (HTTP 429, 500, 502, 503, 504) con retroceso exponencial:

Establece retry_total=0 para desactivar por completo los reintentos en operaciones sensibles al tiempo.

Cambio de contexto de tenant

pyvergeos puede conectarse a contextos de tenant desde el sistema anfitrión, lo que permite scripts de automatización centralizados que gestionan recursos en varios tenants:

Esto es especialmente valioso para MSPs y proveedores de servicios que necesitan automatizar el aprovisionamiento en docenas o cientos de entornos de tenant desde un único script.

Ejemplos prácticos

Gestión del ciclo de vida de las VM

Red con reglas de firewall

Operaciones masivas con filtrado

Informe de inventario multi-tenant

Notas importantes

¿Vienes de VMware o Nutanix?

pyvergeos expone tres patrones que conviene conocer de entrada:

  • Filtrado — un Filter() fluido genera expresiones de estilo OData (.eq(), .gt(), .and_(), .or_()), o puedes pasar una cadena OData en bruto a list(filter=...).

  • Sondeo de tareas — las operaciones asíncronas devuelven una referencia de tarea; client.tasks.wait(task_id, timeout=...) bloquea hasta completarse y lanza TaskTimeoutError si se agota el tiempo.

  • Contexto de tenant — tenant.connect() devuelve un cliente con ámbito dentro del tenant, de modo que el mismo script pueda controlar el sistema anfitrión y cualquier tenant hijo sin volver a conectarse a otro extremo.

Recursos adicionales

Última actualización

¿Te fue útil?