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