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.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.

Versiones anteriores

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 publicadas 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