Skip to content

Instantly share code, notes, and snippets.

@mprokopov
Created December 4, 2023 13:59
Show Gist options
  • Save mprokopov/745a5bc735f4941791053435068f7e89 to your computer and use it in GitHub Desktop.
Save mprokopov/745a5bc735f4941791053435068f7e89 to your computer and use it in GitHub Desktop.
XenServer Terraform Example
provider "xenserver" {
url = "https://xxx.xxx.xxx.xxx"
username = "root"
password = ""
}
# resource "xenserver_vm" "test1" {
# base_template_name = "sample-template"
# name_label = "test1"
# static_mem_min = 2147483648
# static_mem_max = 2147483648
# dynamic_mem_min = 2147483648
# dynamic_mem_max = 2147483648
# vcpus = 2
# boot_order = "c"
# hard_drive {
# is_from_template = true
# user_device = "0"
# } # Template VM HDD
# cdrom {
# is_from_template = true
# user_device = "2"
# }
# network_interface {
# network_uuid = "bc924410-91f4-b7ae-124b-ee28828d5c03"
# device = 0
# mtu = 1500
# mac = ""
# other_config {
# ethtool-gso = "off"
# ethtool-ufo = "off"
# ethtool-tso = "off"
# ethtool-sg = "off"
# ethtool-tx = "off"
# ethtool-rx = "off"
# }
# }
# }
data "xenserver_pif" "eth0" {
device = "eth0"
}
data "xenserver_pif" "management" {
management = true
}
data "xenserver_sr" "local-storage" {
name_label = "Local storage_HDD"
}
output "google_addrs" {
value = "${data.xenserver_pif.eth0.device}"
}
output "google_addrs2" {
value = "${data.xenserver_pif.management.id}"
}
output "sr" {
value = "${data.xenserver_sr.local-storage.id}"
}
resource "xenserver_vm" "test1" {
base_template_name = "centos-cluster-01"
name_label = "test2"
static_mem_min = 2147483648
static_mem_max = 2147483648
dynamic_mem_min = 2147483648
dynamic_mem_max = 2147483648
vcpus = 2
boot_order = "c"
hard_drive {
is_from_template = true
user_device = "0"
}
cdrom {
is_from_template = true
user_device = "2"
}
network_interface {
network_uuid = "${data.xenserver_pif.eth0.network}"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment