Skip to content

Instantly share code, notes, and snippets.

@jbayer
Created June 20, 2025 19:25
Show Gist options
  • Save jbayer/fa91400f9140f1437d4bc36a7d40e58e to your computer and use it in GitHub Desktop.
Save jbayer/fa91400f9140f1437d4bc36a7d40e58e to your computer and use it in GitHub Desktop.
Example Hyper-V with Terraform
terraform {
required_providers {
hyperv = {
version = "1.0.3"
source = "registry.terraform.io/taliesins/hyperv"
}
}
}
provider "hyperv" {
}
resource "hyperv_network_switch" "dmz_network_switch" {
name = "dmz"
}
resource "hyperv_vhd" "web_server_g1_vhd" {
path = "c:\\web_server\\web_server_g1.vhdx" #Needs to be absolute path
size = 10737418240 #10GB
}
resource "hyperv_machine_instance" "web_server_g1" {
name = "web_server_g1"
path = "c:\\web_server\\"
generation = 1
processor_count = 2
static_memory = true
memory_startup_bytes = 536870912 #512MB
wait_for_state_timeout = 10
wait_for_ips_timeout = 10
vm_processor {
expose_virtualization_extensions = true
}
network_adaptors {
name = "wan"
switch_name = hyperv_network_switch.dmz_network_switch.name
wait_for_ips = false
}
hard_disk_drives {
controller_type = "Ide"
path = hyperv_vhd.web_server_g1_vhd.path
controller_number = 0
controller_location = 0
}
dvd_drives {
controller_number = 0
controller_location = 1
#path = "ubuntu.iso"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment