- Download Terraform CLI from here: https://www.terraform.io/downloads.html
- Windows x64 version: https://releases.hashicorp.com/terraform/0.12.19/terraform_0.12.19_windows_amd64.zip
- Unzip the
terraform.exeto some folder and add it to our PATH or CD to that folder so you can use the exe from that folder - Create these 3 Terraform files to your working folder:
main.tfvariables.tfterraform.tfvars
- Run these terraform commands:
terraform initterraform planterraform apply
Last active
January 20, 2020 12:32
-
-
Save Satak/ca370e3e40f7756e7e2064081f876b5f to your computer and use it in GitHub Desktop.
This file contains hidden or 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
| provider "vsphere" { | |
| user = var.vsphere_user | |
| password = var.vsphere_password | |
| vsphere_server = var.vsphere_server | |
| allow_unverified_ssl = true | |
| } | |
| data "vsphere_datacenter" "dc" { | |
| name = var.datacenter | |
| } | |
| data "vsphere_datastore" "datastore" { | |
| name = var.datastore | |
| datacenter_id = data.vsphere_datacenter.dc.id | |
| } | |
| data "vsphere_resource_pool" "pool" { | |
| name = var.resource_pool | |
| datacenter_id = data.vsphere_datacenter.dc.id | |
| } | |
| data "vsphere_network" "network" { | |
| name = var.network | |
| datacenter_id = data.vsphere_datacenter.dc.id | |
| } | |
| data "vsphere_virtual_machine" "template" { | |
| name = var.vm_template | |
| datacenter_id = data.vsphere_datacenter.dc.id | |
| } | |
| resource "vsphere_virtual_machine" "vm" { | |
| name = var.vm_name | |
| 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 | |
| num_cpus = 2 | |
| memory = 1024 | |
| folder = var.vm_folder | |
| disk { | |
| label = "disk0" | |
| size = 20 # data.vsphere_virtual_machine.template.disks.0.size | |
| } | |
| network_interface { | |
| network_id = data.vsphere_network.network.id | |
| adapter_type = data.vsphere_virtual_machine.template.network_interface_types[0] | |
| } | |
| clone { | |
| template_uuid = data.vsphere_virtual_machine.template.id | |
| customize { | |
| windows_options { | |
| computer_name = var.vm_name | |
| admin_password = var.vm_password | |
| } | |
| network_interface { | |
| ipv4_address = "10.134.3.162" | |
| ipv4_netmask = "24" | |
| } | |
| } | |
| } | |
| wait_for_guest_net_routable = false | |
| wait_for_guest_ip_timeout = 0 | |
| wait_for_guest_net_timeout = 0 | |
| } |
This file contains hidden or 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
| vsphere_user = "username" | |
| vsphere_password = "password" | |
| vsphere_server = "localhost" | |
| datacenter = "DC0" | |
| cluster = "DC0_H0" | |
| datastore = "datastore/LocalDS_0" | |
| resource_pool = "DC0_H0/Resources" | |
| network = "network/VM Network" | |
| vm_name = "vcsimtest" | |
| vm_template = "DC0_H0_VM0" | |
| vm_folder = "vm" | |
| vm_password = "password" |
This file contains hidden or 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
| variable "vsphere_user" {} | |
| variable "vsphere_password" {} | |
| variable "vsphere_server" {} | |
| variable "datacenter" {} | |
| variable "cluster" {} | |
| variable "datastore" {} | |
| variable "resource_pool" {} | |
| variable "network" {} | |
| variable "vm_name" {} | |
| variable "vm_template" {} | |
| variable "vm_folder" {} | |
| variable "vm_password" {} |
This file contains hidden or 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
| provider "vsphere" { | |
| user = "username" | |
| password = "password" | |
| vsphere_server = "localhost" | |
| allow_unverified_ssl = true | |
| } | |
| data "vsphere_datacenter" "dc" { | |
| name = "DC0" | |
| } | |
| data "vsphere_datastore" "datastore" { | |
| name = "datastore/LocalDS_0" | |
| datacenter_id = data.vsphere_datacenter.dc.id | |
| } | |
| data "vsphere_resource_pool" "pool" { | |
| name = "DC0_H0/Resources" | |
| datacenter_id = data.vsphere_datacenter.dc.id | |
| } | |
| data "vsphere_network" "network" { | |
| name = "network/VM Network" | |
| datacenter_id = data.vsphere_datacenter.dc.id | |
| } | |
| data "vsphere_virtual_machine" "template" { | |
| name = "DC0_H0_VM0" | |
| datacenter_id = data.vsphere_datacenter.dc.id | |
| } | |
| resource "vsphere_virtual_machine" "vm" { | |
| name = "terraform-test" | |
| resource_pool_id = data.vsphere_resource_pool.pool.id | |
| datastore_id = data.vsphere_datastore.datastore.id | |
| num_cpus = 2 | |
| memory = 4096 | |
| guest_id = data.vsphere_virtual_machine.template.guest_id | |
| // guest_id = "otherLinux64Guest" | |
| network_interface { | |
| network_id = data.vsphere_network.network.id | |
| adapter_type = data.vsphere_virtual_machine.template.network_interface_types[0] | |
| } | |
| disk { | |
| label = "disk0" | |
| size = 50 | |
| } | |
| /* | |
| clone { | |
| template_uuid = data.vsphere_virtual_machine.template.id | |
| customize { | |
| windows_options { | |
| computer_name = "terraform-test" | |
| admin_password = "password" | |
| } | |
| network_interface { | |
| ipv4_address = "10.134.3.162" | |
| ipv4_netmask = "24" | |
| } | |
| } | |
| } | |
| */ | |
| scsi_type = data.vsphere_virtual_machine.template.scsi_type | |
| wait_for_guest_net_timeout = "-1" | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment