diff --git a/example/cloud_init.cfg b/example/cloud_init.cfg new file mode 100644 index 0000000..17c3ed1 --- /dev/null +++ b/example/cloud_init.cfg @@ -0,0 +1,10 @@ +ssh_pwauth: true +chpasswd: + list: | + root:phyllome + expire: False +disable_root: false + +runcmd: + - sed -i '/PermitRootLogin/s/.*/PermitRootLogin yes/' /etc/ssh/sshd_config + - systemctl restart sshd \ No newline at end of file diff --git a/example/ubuntu-cloud-server-2404-bios.tf b/example/ubuntu-cloud-server-2404-bios.tf new file mode 100644 index 0000000..6005b47 --- /dev/null +++ b/example/ubuntu-cloud-server-2404-bios.tf @@ -0,0 +1,71 @@ +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-bios" { + name = "ubuntu-bios-${count.index}" + pool = libvirt_pool.ubuntu-bios.name + source = "/var/lib/libvirt/images/noble-server-cloudimg-amd64.img" + format = "qcow2" + count = 1 +} + +resource "libvirt_cloudinit_disk" "commoninit" { + name = "commoninit.iso" + user_data = templatefile("${path.module}/cloud_init.yaml", {}) +} + +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 = element(libvirt_volume.ubuntu-bios.*.id, count.index) + } + + 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" + } + +} +