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

Laboratorio: automatización de infraestructura

Usar la API REST de VergeOS, el proveedor de Terraform y herramientas de scripting para automatizar de extremo a extremo el aprovisionamiento de VM e inquilinos.

Objetivo

Automatiza las operaciones de infraestructura de VergeOS usando la API REST, el proveedor de Terraform y herramientas de scripting (pyvergeos o PowerShell). Al finalizar este laboratorio, habrás aprovisionado VMs e inquilinos de forma programática y comprenderás cómo integrar VergeOS en flujos de trabajo de CI/CD y automatización.

Requisitos previos

  • Módulo 1 completado: Fundamentos de la arquitectura

  • Módulo 6 completado: Máquinas virtuales

  • Módulo 7 completado: Multiinquilinato

  • Lectura del Módulo 8 completada (API REST, Terraform, Python/PowerShell, Cloud-Init)

  • Un clúster de VergeOS en ejecución con acceso a la API habilitado

  • Terraform instalado localmente (v1.5+)

  • Python 3.9+ o PowerShell 7+ instalado localmente

  • Acceso al vergeos-terraform-playground repositorio

Dificultad

Intermedio -- Requiere familiaridad con las API REST, conceptos de infraestructura como código y scripting básico

Tiempo estimado

2 horas

Pasos

Parte 1: Exploración de la API REST

Autentícate con la API de VergeOS y realiza operaciones básicas.

  1. Obtén una clave de API desde la interfaz de VergeOS (Sistema > Usuarios > [tu usuario] > Claves de API)

  2. Usa curl o un cliente REST para autenticarte:

  3. Enumera todas las VMs usando el /api/v4/vms endpoint

  4. Crea una nueva VM a través de la API:

    • POST a /api/v4/vms con un cuerpo JSON que especifique nombre, CPU, memoria y disco

  5. Inicia y detén la VM usando la API

  6. Elimina la VM a través de la API

  7. Explora endpoints adicionales: redes (/api/v4/vnets — la tabla se llama vnets mientras que el nombre en la UI/objeto es "Networks"), inquilinos (/api/v4/tenants)

Parte 2: Proveedor de Terraform

Usa el proveedor de Terraform de VergeOS para gestionar la infraestructura de forma declarativa.

  1. Clona el repositorio vergeos-terraform-playground:

  2. Revisa la configuración del proveedor en main.tf

  3. Copia y personaliza un archivo de ejemplo .tfvars para tu entorno

  4. Ejecuta terraform init para descargar el proveedor de VergeOS

  5. Ejecuta terraform plan para previsualizar los cambios de infraestructura

  6. Ejecuta terraform apply para aprovisionar recursos

  7. Verifica los recursos creados en la interfaz de VergeOS

  8. Modifica un recurso en la configuración de Terraform y vuelve a aplicar

  9. Ejecuta terraform destroy para limpiar

Parte 3: Automatización con scripting

Automatiza un flujo de trabajo usando pyvergeos (Python) o el módulo de PowerShell.

  1. Instala pyvergeos:

  2. Escribe un script que:

    • Se conecte a tu clúster de VergeOS

    • Enumere todas las VMs y su estado actual

    • Cree una nueva VM a partir de una receta/plantilla

    • Espere a que la VM esté en ejecución

    • Devuelva la dirección IP de la VM y los detalles de conexión

  3. Amplía el script para:

    • Crear un inquilino con asignaciones de recursos predefinidas

    • Desplegar una VM dentro del inquilino

    • Verificar el aislamiento del inquilino comprobando la conectividad de red

Parte 4: Cloud-Init

Configura el aprovisionamiento desatendido de VMs usando cloud-init.

  1. Crea un archivo de configuración de cloud-init con:

    • Configuración de nombre de host y de red

    • Cuentas de usuario y claves SSH

    • Comandos de instalación de paquetes

    • Scripts posteriores al arranque

  2. Adjunta la configuración de cloud-init a una nueva VM a través de la API o la UI

  3. Arranca la VM y verifica que la configuración de cloud-init se haya aplicado:

    • Comprueba el nombre de host y la configuración de red

    • Verifica que existan las cuentas de usuario

    • Confirma que se instalaron los paquetes

Verificación

Tu laboratorio de automatización de infraestructura está completo cuando puedas responder sí a todo lo siguiente:

Última actualización

¿Te fue útil?