From 7cc9094dff4dd05d38b301ac8b6b2ecf7fb40f74 Mon Sep 17 00:00:00 2001 From: Lukas Greve Date: Tue, 26 Aug 2025 20:16:33 +0200 Subject: [PATCH] add first example, ubuntu 2404 with BIOS firmware and i440fx chipset --- .../ubuntu-cloud-server-2404-bios.tf | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 ubuntu-cloud-server-2404-bios/ubuntu-cloud-server-2404-bios.tf 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