Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 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",
- # ]
- # }
- }
Add Comment
Please, Sign In to add comment