使用 Terraform 自动化 XenServer®

Last published : Oct 07, 2026
XenServer Terraform Provider 使 IT 管理员能够自动化 XenServer 环境的配置和管理任务。这在大规模设置中特别有用,因为自动化可确保一致性、减少手动错误并节省时间。使用 Terraform Provider,您可以:
  • 创建虚拟机 (VM)
  • 管理快照(创建和删除)
  • 配置存储(添加或删除本地和 NFS 类型)
  • 设置和管理网络
  • 检索有关 XenServer 主机的信息
XenServer Terraform Provider 的主要优势:
  • 自动化:通过基础设施即代码 (IaC) 实践简化 XenServer 环境的部署和管理。
  • 效率:自动化虚拟机创建、快照管理以及存储或网络配置等任务,最大限度地减少手动干预。
  • 一致性:确保大型环境中的配置统一,最大限度地减少错误。
  • 可扩展性:通过简化环境(例如 QA 设置)的创建和重建,支持基础设施的快速增长。

先决条件

在使用 XenServer Terraform Provider 之前,请确保您具备以下条件:
  • Terraform 1.8 或更高版本
    从官方 Terraform 安装指南 下载 Terraform。
    Windows 用户可以通过运行以下命令使用 Chocolatey 安装 Terraform:
    choco install terraform
  • 具有管理访问权限的 XenServer 实例
  • XenServer API 凭据
    其中包括您的 XenServer 的用户名、密码和 IP 地址。

开始使用

  1. 准备 Terraform 配置。
    首先,将 XenServer Terraform Provider 添加到您的 Terraform 配置文件 main.tf 中:
    terraform {
        required_providers {
            xenserver = {
            source = "xenserver/xenserver"
            }
        }
    }

    provider "xenserver" {
        host         = "https://<ip address of XenServer>"
        username     = "root"
        password     = <root password>
        ca_cert_path = <path to cert.pem>
    }
  2. 定义资源。
    例如,要创建虚拟机,请在您的配置文件中定义资源:
    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"
        }
    }
    或者,要创建 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"
        }
    }
  3. 初始化并应用配置。
    要安装 XenServer Terraform Provider,请运行:
    terraform init
    然后,要配置定义的资源,请运行:
    terraform apply
有关高级配置和附加资源,请参阅 XenServer Terraform Provider 文档。如果您遇到任何问题,请联系支持人员或提交 GitHub 问题工单。

新增功能

XenServer Terraform Provider 独立于 XenServer 版本进行更新,以引入新的自动化功能、修复程序并确保持续兼容性。

XenServer Terraform 提供程序 0.3.0

发布于 Sep 8, 2026
此版本包含以下安全改进:
  • TLS 证书验证现已默认启用。将 ca_cert_path 属性设置为 XenServer 主机 CA 证书 (PEM) 的路径。仅用于开发或测试,请将 insecure = true 设置为跳过验证。
  • 所有到 XenServer 主机的连接现在都使用 HTTPS。
此版本包含以下改进:
  • 发布 XenServer Terraform Provider,并使用 Go SDK v26.16.01。
此版本包含以下问题的修复程序:
  • 解决了网络接口命名不兼容问题,该问题导致基于名称的网络解析无法在 XenServer 9 主机上运行。