74 lines
1.3 KiB
HCL
74 lines
1.3 KiB
HCL
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"
|
|
}
|
|
|
|
} |