Terraform を使用した XenServer® の自動化

最終公開日 : Oct 07, 2026
XenServer Terraform Provider を使用すると、IT 管理者は XenServer 環境の構成および管理タスクを自動化できます。これは、自動化によって一貫性が確保され、手動エラーが減り、時間が節約される大規模なセットアップで特に役立ちます。Terraform プロバイダーを使用すると、次のことができます。
  • 仮想マシン (VM) の作成
  • スナップショットの管理 (作成と削除)
  • ストレージの構成 (ローカルおよび NFS タイプを追加または削除)
  • ネットワークのセットアップと管理
  • XenServer ホストに関する情報の取得
XenServer Terraform Provider の主な利点:
  • 自動化: Infrastructure-as-Code (IaC) の実践を通じて、XenServer 環境の展開と管理を簡素化します。
  • 効率性: VM の作成、スナップショット管理、ストレージまたはネットワーク構成などのタスクを自動化し、手動による介入を最小限に抑えます。
  • 一貫性: 大規模な環境全体で均一な構成を確保し、エラーを最小限に抑えます。
  • スケーラビリティ: QA セットアップなどの環境の作成と再構築を効率化することで、インフラストラクチャの急速な成長をサポートします。

前提条件

XenServer Terraform Provider を使用する前に、以下があることを確認してください。
  • Terraform バージョン 1.8 以降
    公式のTerraform インストールガイドからTerraformをダウンロードします。
    Windowsユーザーは、次のコマンドを実行してChocolateyを使用してTerraformをインストールできます。
    choco install terraform
  • 管理者アクセス権を持つXenServerインスタンス
  • XenServer APIクレデンシャル
    これらには、ユーザー名、パスワード、およびXenServerのIPアドレスが含まれます。

開始する

  1. Terraform構成を準備します。
    まず、XenServer Terraformプロバイダーを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. リソースを定義します。
    たとえば、VMを作成するには、構成ファイルでリソースを定義します。
    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プロバイダーをインストールするには、次を実行します。
    terraform init
    次に、定義されたリソースをプロビジョニングするには、次を実行します。
    terraform apply
高度な構成と追加のリソースについては、XenServer Terraformプロバイダーのドキュメントを参照してください。問題が発生した場合は、サポートに連絡するか、GitHubでイシューチケットを起票してください。

新機能

XenServer Terraform Providerは、新しい自動化機能、修正、および継続的な互換性を確保するために、XenServerのバージョンとは独立して更新されます。

XenServer Terraform プロバイダー 0.3.0

Sep 8, 2026 リリース
このリリースには、以下のセキュリティ改善が含まれています。
  • TLS証明書の検証がデフォルトで有効になりました。ca_cert_path属性をXenServerホストのCA証明書(PEM)のパスに設定します。開発またはテスト目的でのみ、検証をスキップするにはinsecure = trueを設定します。
  • XenServerホストへのすべての接続でHTTPSを使用するようになりました。
このリリースには、以下の改善が含まれています。
  • Go SDK v26.16.01でXenServer Terraform Providerをリリース。
このリリースには、以下の問題に対する修正が含まれています。
  • XenServer 9ホストで名前ベースのネットワーク解決が機能しない原因となっていた、ネットワークインターフェースの命名の非互換性を解決しました。