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アドレスが含まれます。
はじめに
-
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--> -
リソースを定義します。
たとえば、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--> -
構成を初期化して適用します。
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はこれらの互換性の問題を解決します。