Created
January 8, 2018 13:08
-
-
Save vidkun/883e1e69c254ba04843379594de886b7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Configure the VMware vSphere Provider | |
provider "vsphere" { | |
user = "${var.vsphere_user}" | |
password = "${var.vsphere_password}" | |
vsphere_server = "${var.vsphere_server}" | |
allow_unverified_ssl = true | |
} | |
data "vsphere_datacenter" "dc" { | |
name = "MYDC" | |
} | |
data "vsphere_datastore" "datastore" { | |
name = "vsanDatastore" | |
datacenter_id = "${data.vsphere_datacenter.dc.id}" | |
} | |
data "vsphere_resource_pool" "pool" { | |
name = "Cluster/Resources" | |
datacenter_id = "${data.vsphere_datacenter.dc.id}" | |
} | |
data "vsphere_network" "network" { | |
name = "VM Network" | |
datacenter_id = "${data.vsphere_datacenter.dc.id}" | |
} | |
data "vsphere_virtual_machine" "template" { | |
name = "rhel74-template" | |
datacenter_id = "${data.vsphere_datacenter.dc.id}" | |
} | |
# Create a virtual machine within the folder | |
resource "vsphere_virtual_machine" "my-test-vm" { | |
count = 3 | |
name = "${format("my-test-vm%02d", count.index + 1)}" | |
num_cpus = 24 # 16 / 48 | |
memory = 131072 # (128GB) / 16384 (16GB) / 65536 (64GB) | |
resource_pool_id = "${data.vsphere_resource_pool.pool.id}" | |
datastore_id = "${data.vsphere_datastore.datastore.id}" | |
guest_id = "${data.vsphere_virtual_machine.template.guest_id}" | |
scsi_type = "${data.vsphere_virtual_machine.template.scsi_type}" | |
network_interface { | |
network_id = "${data.vsphere_network.network.id}" | |
adapter_type = "${data.vsphere_virtual_machine.template.network_interface_types[0]}" | |
} | |
disk { | |
name = "${format("my-test-vm%02d", count.index + 1)}.vmdk" | |
size = "${data.vsphere_virtual_machine.template.disks.0.size}" | |
eagerly_scrub = "${data.vsphere_virtual_machine.template.disks.0.eagerly_scrub}" | |
thin_provisioned = "${data.vsphere_virtual_machine.template.disks.0.thin_provisioned}" | |
datastore_id = "${data.vsphere_datastore.datastore.id}" | |
} | |
disk { | |
datastore_id = "${data.vsphere_datastore.datastore.id}" | |
size = "20" | |
name = "${format("my-test-vm%02d", count.index + 1)}-datavol01.vmdk" | |
thin_provisioned = "false" | |
io_reservation = "1000" | |
unit_number = 1 | |
} | |
clone { | |
template_uuid = "${data.vsphere_virtual_machine.template.id}" | |
timeout = 360 | |
customize { | |
timeout = 0 | |
linux_options { | |
host_name = "${format("my-test-vm%02d", count.index + 1)}" | |
domain = "sub.mydomain.com" | |
time_zone = "America/Chicago" | |
} | |
network_interface { | |
ipv4_address = "10.2.0.${51 + count.index}" | |
ipv4_netmask = 24 | |
} | |
ipv4_gateway = "10.2.0.1" | |
dns_server_list = "${var.my_nameservers}" | |
} | |
} | |
# connection { | |
# type = "ssh" | |
# user = "${var.vmuser}" | |
# password = "${var.vmpassword}" | |
# } | |
# | |
# provisioner "file" { | |
# source = "files/bootstrap.sh" | |
# destination = "/tmp/bootstrap.sh" | |
# } | |
# | |
# provisioner "remote-exec" { | |
# inline = [ | |
# "chmod +x /tmp/bootstrap.sh", | |
# "/tmp/bootstrap.sh", | |
# ] | |
# } | |
} | |
# Create a virtual machine within the folder | |
resource "vsphere_virtual_machine" "my-vm" { | |
count = 3 | |
name = "${format("my-vm%02d", count.index + 1)}" | |
num_cpus = 24 # 16 / 48 | |
memory = 131072 # (128GB) / 16384 (16GB) / 65536 (64GB) | |
resource_pool_id = "${data.vsphere_resource_pool.pool.id}" | |
datastore_id = "${data.vsphere_datastore.datastore.id}" | |
guest_id = "${data.vsphere_virtual_machine.template.guest_id}" | |
scsi_type = "${data.vsphere_virtual_machine.template.scsi_type}" | |
network_interface { | |
network_id = "${data.vsphere_network.network.id}" | |
adapter_type = "${data.vsphere_virtual_machine.template.network_interface_types[0]}" | |
} | |
disk { | |
name = "${format("my-vm%02d", count.index + 1)}.vmdk" | |
size = "${data.vsphere_virtual_machine.template.disks.0.size}" | |
eagerly_scrub = "${data.vsphere_virtual_machine.template.disks.0.eagerly_scrub}" | |
thin_provisioned = "${data.vsphere_virtual_machine.template.disks.0.thin_provisioned}" | |
datastore_id = "${data.vsphere_datastore.datastore.id}" | |
} | |
disk { | |
datastore_id = "${data.vsphere_datastore.datastore.id}" | |
size = "200" | |
name = "${format("my-vm%02d", count.index + 1)}-datavol01.vmdk" | |
thin_provisioned = "false" | |
io_reservation = "1000" | |
unit_number = 1 | |
} | |
clone { | |
template_uuid = "${data.vsphere_virtual_machine.template.id}" | |
timeout = 360 | |
customize { | |
timeout = 0 | |
linux_options { | |
host_name = "${format("my-vm%02d", count.index + 1)}" | |
domain = "sub.mydomain.com" | |
time_zone = "America/Chicago" | |
} | |
network_interface { | |
ipv4_address = "10.2.0.${31 + count.index}" | |
ipv4_netmask = 24 | |
} | |
ipv4_gateway = "10.2.0.1" | |
dns_server_list = "${var.my_nameservers}" | |
} | |
} | |
# connection { | |
# type = "ssh" | |
# user = "${var.vmuser}" | |
# password = "${var.vmpassword}" | |
# } | |
# | |
# provisioner "file" { | |
# source = "files/bootstrap.sh" | |
# destination = "/tmp/bootstrap.sh" | |
# } | |
# | |
# provisioner "remote-exec" { | |
# inline = [ | |
# "chmod +x /tmp/bootstrap.sh", | |
# "/tmp/bootstrap.sh", | |
# ] | |
# } | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment