XenServer

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

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
     <!--NeedCopy-->
    
  • 管理者アクセス権を持つ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>
        }
    <!--NeedCopy-->
    
  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"
        }
    }
    <!--NeedCopy-->
    

    または、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"
        }
    }
    <!--NeedCopy-->
    
  3. 構成を初期化して適用します。

    XenServer Terraformプロバイダーをインストールするには、以下を実行します。

    terraform init
    <!--NeedCopy-->
    

    次に、定義されたリソースをプロビジョニングするには、以下を実行します。

    terraform apply
    <!--NeedCopy-->
    

高度な構成と追加のリソースについては、XenServer Terraformプロバイダーのドキュメントを参照してください。問題が発生した場合は、サポートに連絡するか、GitHubでイシューチケットを起票してください。

新機能

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

XenServer Terraformプロバイダー 0.2.2

Mar 27, 2025 リリース

このリリースには、以下の改善が含まれています。

  • アップストリームパッケージのセキュリティ勧告を修正するため、Terraformプロバイダーの依存関係を更新しました。
  • Go SDK v25.3.0でTerraformプロバイダーをリリースしました。

以前のリリース

0.2.1

Jan 20, 2025 リリース

このリリースでは、以下の新しい自動化機能が導入されています。

  • フルディスクコピーでテンプレートからVMを作成します。

このリリースには、以下の改善が含まれています。

  • 使いやすさを向上させるため、内部参照の代わりにUUIDを返します。

このリリースには、以下の問題に対する修正が含まれています。

  • プールの作成、変更、または破棄が失敗し、SSHコマンドがエラーで終了することがあります。

0.2.0

Nov 11, 2024 にリリース

このリリースでは、以下の新しい自動化機能が導入されています。

  • プールへのホストの追加と削除を容易にし、スケーラビリティを向上させ、メンテナンスを簡素化します。
  • デフォルトのSRと管理ネットワークを更新します。
  • SMB/CIFSストレージの作成と削除を行い、ストレージ構成の柔軟性を高めます。

このリリースには、以下の改善が含まれています。

  • VM作成時のディスク数制限を撤廃し、ハードウェアへの依存を減らし、ストレージを最適化します。
  • VMをスナップショットに復元できるようにし、リカバリとロールバックをより簡単にします。
  • 環境変数から資格情報を読み取れるようにし、構成管理を簡素化します。

0.1.2

Oct 31, 2024 にリリース

このリリースには、以下の問題に対する修正が含まれています。

  • XenServer Terraform Providerバージョン0.1.1を使用している場合、Early Access向けに 25 September 2024 に、Normal向けに 2 October 2024 にリリースされたXenServer 8.4アップデートを適用すると、互換性の問題が発生する可能性があります。バージョン0.1.2はこれらの互換性の問題を解決します。
Terraform を使用した XenServer® の自動化

この記事の概要