Guest User

Untitled

a guest
Jan 16th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.07 KB | None | 0 0
  1. # Configure the VMware vSphere Provider
  2. provider "vsphere" {
  3. user = "${var.vsphere_user}"
  4. password = "${var.vsphere_password}"
  5. vsphere_server = "${var.vsphere_server}"
  6. allow_unverified_ssl = true
  7. }
  8.  
  9. data "vsphere_datacenter" "dc" {
  10. name = "MYDC"
  11. }
  12.  
  13. data "vsphere_datastore" "datastore" {
  14. name = "vsanDatastore"
  15. datacenter_id = "${data.vsphere_datacenter.dc.id}"
  16. }
  17.  
  18. data "vsphere_resource_pool" "pool" {
  19. name = "Cluster/Resources"
  20. datacenter_id = "${data.vsphere_datacenter.dc.id}"
  21. }
  22.  
  23. data "vsphere_network" "network" {
  24. name = "VM Network"
  25. datacenter_id = "${data.vsphere_datacenter.dc.id}"
  26. }
  27.  
  28. data "vsphere_virtual_machine" "template" {
  29. name = "rhel74-template"
  30. datacenter_id = "${data.vsphere_datacenter.dc.id}"
  31. }
  32.  
  33. # Create a virtual machine within the folder
  34. resource "vsphere_virtual_machine" "my-test-vm" {
  35. count = 3
  36. name = "${format("my-test-vm%02d", count.index + 1)}"
  37. num_cpus = 24 # 16 / 48
  38. memory = 131072 # (128GB) / 16384 (16GB) / 65536 (64GB)
  39. resource_pool_id = "${data.vsphere_resource_pool.pool.id}"
  40. datastore_id = "${data.vsphere_datastore.datastore.id}"
  41. guest_id = "${data.vsphere_virtual_machine.template.guest_id}"
  42. scsi_type = "${data.vsphere_virtual_machine.template.scsi_type}"
  43.  
  44.  
  45. network_interface {
  46. network_id = "${data.vsphere_network.network.id}"
  47. adapter_type = "${data.vsphere_virtual_machine.template.network_interface_types[0]}"
  48. }
  49.  
  50. disk {
  51. name = "${format("my-test-vm%02d", count.index + 1)}.vmdk"
  52. size = "${data.vsphere_virtual_machine.template.disks.0.size}"
  53. eagerly_scrub = "${data.vsphere_virtual_machine.template.disks.0.eagerly_scrub}"
  54. thin_provisioned = "${data.vsphere_virtual_machine.template.disks.0.thin_provisioned}"
  55. datastore_id = "${data.vsphere_datastore.datastore.id}"
  56. }
  57.  
  58. disk {
  59. datastore_id = "${data.vsphere_datastore.datastore.id}"
  60. size = "20"
  61. name = "${format("my-test-vm%02d", count.index + 1)}-datavol01.vmdk"
  62. thin_provisioned = "false"
  63. io_reservation = "1000"
  64. unit_number = 1
  65. }
  66.  
  67. clone {
  68. template_uuid = "${data.vsphere_virtual_machine.template.id}"
  69. timeout = 360
  70.  
  71. customize {
  72. timeout = 0
  73. linux_options {
  74. host_name = "${format("my-test-vm%02d", count.index + 1)}"
  75. domain = "sub.mydomain.com"
  76. time_zone = "America/Chicago"
  77. }
  78.  
  79. network_interface {
  80. ipv4_address = "10.2.0.${51 + count.index}"
  81. ipv4_netmask = 24
  82. }
  83.  
  84. ipv4_gateway = "10.2.0.1"
  85. dns_server_list = "${var.my_nameservers}"
  86. }
  87. }
  88.  
  89. # connection {
  90. # type = "ssh"
  91. # user = "${var.vmuser}"
  92. # password = "${var.vmpassword}"
  93. # }
  94. #
  95. # provisioner "file" {
  96. # source = "files/bootstrap.sh"
  97. # destination = "/tmp/bootstrap.sh"
  98. # }
  99. #
  100. # provisioner "remote-exec" {
  101. # inline = [
  102. # "chmod +x /tmp/bootstrap.sh",
  103. # "/tmp/bootstrap.sh",
  104. # ]
  105. # }
  106. }
  107.  
  108. # Create a virtual machine within the folder
  109. resource "vsphere_virtual_machine" "my-vm" {
  110. count = 3
  111. name = "${format("my-vm%02d", count.index + 1)}"
  112. num_cpus = 24 # 16 / 48
  113. memory = 131072 # (128GB) / 16384 (16GB) / 65536 (64GB)
  114. resource_pool_id = "${data.vsphere_resource_pool.pool.id}"
  115. datastore_id = "${data.vsphere_datastore.datastore.id}"
  116. guest_id = "${data.vsphere_virtual_machine.template.guest_id}"
  117. scsi_type = "${data.vsphere_virtual_machine.template.scsi_type}"
  118.  
  119.  
  120. network_interface {
  121. network_id = "${data.vsphere_network.network.id}"
  122. adapter_type = "${data.vsphere_virtual_machine.template.network_interface_types[0]}"
  123. }
  124.  
  125. disk {
  126. name = "${format("my-vm%02d", count.index + 1)}.vmdk"
  127. size = "${data.vsphere_virtual_machine.template.disks.0.size}"
  128. eagerly_scrub = "${data.vsphere_virtual_machine.template.disks.0.eagerly_scrub}"
  129. thin_provisioned = "${data.vsphere_virtual_machine.template.disks.0.thin_provisioned}"
  130. datastore_id = "${data.vsphere_datastore.datastore.id}"
  131. }
  132.  
  133. disk {
  134. datastore_id = "${data.vsphere_datastore.datastore.id}"
  135. size = "200"
  136. name = "${format("my-vm%02d", count.index + 1)}-datavol01.vmdk"
  137. thin_provisioned = "false"
  138. io_reservation = "1000"
  139. unit_number = 1
  140. }
  141.  
  142. clone {
  143. template_uuid = "${data.vsphere_virtual_machine.template.id}"
  144. timeout = 360
  145.  
  146. customize {
  147. timeout = 0
  148. linux_options {
  149. host_name = "${format("my-vm%02d", count.index + 1)}"
  150. domain = "sub.mydomain.com"
  151. time_zone = "America/Chicago"
  152. }
  153.  
  154. network_interface {
  155. ipv4_address = "10.2.0.${31 + count.index}"
  156. ipv4_netmask = 24
  157. }
  158.  
  159. ipv4_gateway = "10.2.0.1"
  160. dns_server_list = "${var.my_nameservers}"
  161. }
  162. }
  163.  
  164. # connection {
  165. # type = "ssh"
  166. # user = "${var.vmuser}"
  167. # password = "${var.vmpassword}"
  168. # }
  169. #
  170. # provisioner "file" {
  171. # source = "files/bootstrap.sh"
  172. # destination = "/tmp/bootstrap.sh"
  173. # }
  174. #
  175. # provisioner "remote-exec" {
  176. # inline = [
  177. # "chmod +x /tmp/bootstrap.sh",
  178. # "/tmp/bootstrap.sh",
  179. # ]
  180. # }
  181. }
Add Comment
Please, Sign In to add comment