diff --git a/ubuntu-cloud-server-2404-bios/ubuntu-cloud-server-2404-bios.tf b/ubuntu-cloud-server-2404-bios/ubuntu-cloud-server-2404-bios.tf new file mode 100644 index 0000000..f83d5df --- /dev/null +++ b/ubuntu-cloud-server-2404-bios/ubuntu-cloud-server-2404-bios.tf @@ -0,0 +1,74 @@ +terraform { + required_version = ">= 0.13" + required_providers { + libvirt = { + source = "dmacvicar/libvirt" + version = "0.8.3" + } + } +} + +provider "libvirt" { + uri = "qemu:///system" +} + +resource "libvirt_pool" "ubuntu-bios" { + name = "ubuntu-bios" + type = "dir" + target { + path = "/tmp/ubuntu-bios" + } +} + +resource "libvirt_volume" "ubuntu-qcow2" { + name = "ubuntu-qcow2" + pool = libvirt_pool.ubuntu-bios.name + source = "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img" + format = "qcow2" +} + +data "template_file" "user_data" { + template = file("${path.module}/cloud_init.cfg") +} + +resource "libvirt_cloudinit_disk" "commoninit" { + name = "commoninit.iso" + user_data = data.template_file.user_data.rendered + pool = libvirt_pool.ubuntu-bios.name +} + +resource "libvirt_domain" "domain" { + count = 1 + name = "ubuntu-cloud-server-2404-${count.index}" + memory = "4092" + vcpu = 2 + cloudinit = libvirt_cloudinit_disk.commoninit.id + + cpu { + mode = "host-model" + } + + disk { + volume_id = libvirt_volume.ubuntu-qcow2.id + } + + console { + type = "pty" + target_port = "0" + target_type = "virtio" + } + + video { + type = "virtio" + } + + tpm { + backend_type = "emulator" + backend_version = "2.0" + } + + network_interface { + network_name = "default" + } + +} \ No newline at end of file