- 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.exe
to 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.tf
variables.tf
terraform.tfvars
- Run these terraform commands:
terraform init
terraform plan
terraform 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