XenServer

Automatización de XenServer con Terraform

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

  • Creación de máquinas virtuales (VM)
  • Administrar instantáneas (crear y eliminar)
  • Configurar el almacenamiento (agregar o quitar tipos locales y NFS)
  • Configurar y administrar redes
  • Recuperar información sobre los hosts de XenServer

Principales ventajas de XenServer Terraform Provider:

  • Automatización: simplifica la implementación y administración de entornos XenServer a través de 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.
  • Consistencia: Garantiza configuraciones uniformes en entornos grandes, minimizando los errores.
  • Escalabilidad: Apoya el rápido crecimiento de la infraestructura al optimizar la creación y reconstrucción de entornos, como las configuraciones de control de calidad.

Requisitos previos

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

  • Terraform versión 1.8 o superior

    Descargar Terraform desde el sitio oficial Guía 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.

Introducción

  1. Prepare la configuración de Terraform.

    Para comenzar, agregue el proveedor 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. Definir recursos.

    Por ejemplo, para crear una máquina virtual, defina el recurso en el 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 bien, para crear un repositorio de almacenamiento (SR) NFS:

      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 Terraform de XenServer, ejecute:

      terraform init
    <!--NeedCopy-->
    

    A continuación, para aprovisionar los recursos definidos, ejecute:

      terraform apply
    <!--NeedCopy-->
    

Para obtener información sobre configuraciones avanzadas y recursos adicionales, consulte la Documentación del proveedor de XenServer Terraform. Si encuentra algún problema, comuníquese con el soporte técnico o genere un ticket de problema en GitHub.

Novedades

El proveedor 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 Terraform de XenServer 0.2.2

Publicado el 27 de marzo de 2025

Esta versión contiene las siguientes mejoras:

  • Actualice las dependencias del proveedor Terraform para corregir un aviso de seguridad en un paquete ascendente.
  • Lanzamiento de Terraformprovider con Go SDK v25.3.0.

Versiones anteriores

0.2.1

Publicado el 20 de enero de 2025

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

  • Cree una máquina virtual a partir de una plantilla con copia de disco completa.

Esta versión contiene las siguientes mejoras:

  • Devuelve UUID 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 grupo 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 presenta las siguientes nuevas capacidades de automatización:

  • Agregue y elimine hosts de los grupos con facilidad, lo que mejora la escalabilidad y simplifica el mantenimiento.
  • Actualice la red de administración y SR predeterminada.
  • Cree y elimine almacenamiento SMB/CIFS, lo que ofrece una mayor flexibilidad en las configuraciones de almacenamiento.

Esta versión contiene las siguientes mejoras:

  • Elimina el límite de número de discos al crear máquinas virtuales, lo que reduce la dependencia del hardware y optimiza el almacenamiento.
  • Permite que las máquinas virtuales se reviertan a instantáneas, lo que hace que la recuperación y la reversión sean más sencillas.
  • Permitir que se lean credenciales desde variables de entorno, simplificando la gestión de la configuración.

0.1.2

Lanzado Oct 31, 2024

Esta versión contiene correcciones para los siguientes problemas:

  • Si está utilizando la versión 0.1.1 de XenServer Terraform Provider, es posible que encuentre problemas de compatibilidad después de aplicar las actualizaciones de XenServer 8.4 lanzadas en acceso anticipado el 25 de septiembre de 2024 y en acceso normal el 2 de octubre de 2024. La versión 0.1.2 resuelve estos problemas de compatibilidad.
Automatización de XenServer con Terraform