XenServer

Automatizando XenServer® con Terraform

El proveedor de Terraform para XenServer permite a los administradores de TI automatizar las tareas de configuración y gestión de los entornos XenServer. Esto es especialmente útil en configuraciones a gran escala, donde la automatización garantiza la coherencia, reduce los errores manuales y ahorra tiempo. Con el proveedor de Terraform, puede:

  • Crear máquinas virtuales (VM)
  • Gestionar instantáneas (crear y eliminar)
  • Configurar el almacenamiento (añadir o eliminar tipos locales y NFS)
  • Configurar y gestionar redes
  • Recuperar información sobre los hosts de XenServer

Beneficios clave del proveedor de Terraform para XenServer:

  • Automatización: Simplifica la implementación y gestión de entornos XenServer mediante prácticas de Infraestructura como Código (IaC).
  • Eficiencia: Automatiza tareas como la creación de máquinas virtuales, la gestión de instantáneas y la configuración de almacenamiento o red, minimizando la intervención manual.
  • Coherencia: Garantiza configuraciones uniformes en entornos grandes, minimizando errores.
  • Escalabilidad: Admite un rápido crecimiento de la infraestructura al agilizar la creación y reconstrucción de entornos, como las configuraciones de control de calidad.

Requisitos previos

Antes de usar el proveedor de Terraform para XenServer, asegúrese de tener lo siguiente:

  • Terraform versión 1.8 o superior

    Descargue Terraform de la Guía oficial de instalación de Terraform.

    Los usuarios de Windows pueden instalar Terraform usando Chocolatey ejecutando el siguiente comando:

     choco install terraform
     <!--NeedCopy-->
    
  • Instancia de XenServer con acceso administrativo

  • Credenciales de la API de XenServer

    Estos incluyen el nombre de usuario, la contraseña y la dirección IP de su XenServer.

Primeros pasos

  1. Prepare la configuración de Terraform.

    Para empezar, añada el proveedor de Terraform de XenServer a su archivo de configuración de Terraform main.tf:

    terraform {
        required_providers {
            xenserver = {
            source = "xenserver/xenserver"
            }
        }
    }
    
        provider "xenserver" {
            host     = "https://<ip address of XenServer>"
            username = "root"
            password = <root password>
        }
    <!--NeedCopy-->
    
  2. Defina los recursos.

    Por ejemplo, para crear una VM, defina el recurso en su archivo de configuración:

    data "xenserver_sr" "sr" {
        name_label = "Local storage"
    }
    
    resource "xenserver_vdi" "vdi1" {
        name_label   = "local-storage-vdi-1"
        sr_uuid      = data.xenserver_sr.sr.data_items[0].uuid
        virtual_size = 100 * 1024 * 1024 * 1024
    }
    
    data "xenserver_network" "network" {}
    
    resource "xenserver_vm" "windows_vm" {
        name_label       = "Windows VM"
        template_name    = "Windows 11"
        static_mem_max   = 4 * 1024 * 1024 * 1024
        vcpus            = 4
        cores_per_socket = 2
        cdrom            = "win11-x64_uefi.iso"
        boot_mode        = "uefi_security"
        boot_order       = "cdn"
    
        hard_drive = [
            {
                vdi_uuid = xenserver_vdi.vdi1.uuid,
                bootable = true,
                mode     = "RW"
            }
        ]
    
        network_interface = [
            {
            device       = "0"
            network_uuid = data.xenserver_network.network.data_items[0].uuid,
            }
        ]
    
        other_config = {
            "tf_created" = "true"
        }
    }
    <!--NeedCopy-->
    

    O, para crear un repositorio de almacenamiento NFS (SR):

    resource "xenserver_sr" "nfs" {
        name_label   = "Test NFS SR"
        type         = "nfs"
        content_type = ""
        shared       = true
        device_config = {
            server     = "192.0.2.1"
            serverpath = "/server/path"
            nfsversion = "3"
        }
        sm_config = {
            shared = "true"
        }
    }
    <!--NeedCopy-->
    
  3. Inicialice y aplique la configuración.

    Para instalar el proveedor de Terraform de XenServer, ejecute:

    terraform init
    <!--NeedCopy-->
    

    Luego, para aprovisionar los recursos definidos, ejecute:

    terraform apply
    <!--NeedCopy-->
    

Para configuraciones avanzadas y recursos adicionales, consulte la Documentación del proveedor de Terraform de XenServer. Si encuentra algún problema, póngase en contacto con el soporte técnico o abra un ticket de incidencia en GitHub.

Novedades

El proveedor de Terraform de XenServer se actualiza independientemente de las versiones de XenServer para introducir nuevas capacidades de automatización, correcciones y garantizar la compatibilidad continua.

Proveedor de Terraform de XenServer 0.2.2

Publicado el 27 de marzo de 2025

Esta versión contiene las siguientes mejoras:

  • Actualizar las dependencias del proveedor de Terraform para corregir una advertencia de seguridad en un paquete ascendente.
  • Lanzar Terraformprovider con Go SDK v25.3.0.

Versiones anteriores

0.2.1

Publicado el 20 de enero de 2025

Esta versión introduce las siguientes nuevas capacidades de automatización:

  • Crear una VM a partir de una plantilla con copia completa del disco.

Esta versión contiene las siguientes mejoras:

  • Devolver UUIDs en lugar de referencias internas para mejorar la usabilidad.

Esta versión contiene correcciones para los siguientes problemas:

  • La creación, modificación o destrucción de un pool a veces puede fallar y salir del comando SSH con un error.

0.2.0

Publicado el 11 de noviembre de 2024

Esta versión introduce las siguientes nuevas capacidades de automatización:

  • Añada y elimine hosts de los pools con facilidad, mejorando la escalabilidad y simplificando el mantenimiento.
  • Actualice la SR predeterminada y la red de administración.
  • Cree y elimine almacenamiento SMB/CIFS, ofreciendo mayor flexibilidad en las configuraciones de almacenamiento.

Esta versión contiene las siguientes mejoras:

  • Elimine el límite de número de discos al crear máquinas virtuales, reduciendo la dependencia del hardware y optimizando el almacenamiento.
  • Permita que las máquinas virtuales se reviertan a instantáneas, haciendo la recuperación y la reversión más sencillas.
  • Permita que las credenciales se lean de las variables de entorno, simplificando la gestión de la configuración.

0.1.2

Publicado el 31 de octubre de 2024

Esta versión contiene correcciones para los siguientes problemas:

  • Si utiliza la versión 0.1.1 del proveedor de XenServer Terraform, podría encontrar problemas de compatibilidad después de aplicar las actualizaciones de XenServer 8.4 publicadas para Early Access el 25 de septiembre de 2024 y para Normal el 2 de octubre de 2024. La versión 0.1.2 resuelve estos problemas de compatibilidad.
Automatizando XenServer® con Terraform