terraform { backend "http" {} } variable "machine_name" { type = "string" } variable "uri" { type = "string" } variable "vm_image_and_system" { type = "string" } provider "libvirt" { uri = "${var.uri}" } resource "libvirt_network" "vm_network" { name = "vm_network" addresses = ["10.0.1.0/24"] } # Create the machine resource "libvirt_domain" "domain-ubuntu" { name = "${var.machine_name}" memory = "8196" vcpu = 4 kernel = "${var.vm_image_and_system}/system/kernel/bzImage" initrd = "${var.vm_image_and_system}/system/initrd" cmdline { "--root" = "/dev/vda1" "--system" = "${var.vm_image_and_system}/system" "--load" = "${var.vm_image_and_system}/system/boot" } filesystem { source = "/gnu/store" target = "TAG_gnu_store" readonly = true accessmode = "passthrough" } disk { file = "${var.vm_image_and_system}/image" readonly = true } network_interface { network_name = "${libvirt_network.vm_network.name}" } console { type = "pty" target_port = "0" target_type = "serial" } console { type = "pty" target_type = "virtio" target_port = "1" } }