terraform { backend "pg" { schema_name = "bootstrap" } required_providers { libvirt = { source = "dmacvicar/libvirt" version = "0.7.1" # https://github.com/dmacvicar/terraform-provider-libvirt/issues/1040 } } } provider "libvirt" { # https://libvirt.org/uri.html#libssh-and-libssh2-transport uri = "qemu+ssh://root@atlas.hyp/system?known_hosts=/etc/ssh/ssh_known_hosts" } provider "libvirt" { alias = "jefke" uri = "qemu+ssh://root@jefke.hyp/system?known_hosts=/etc/ssh/ssh_known_hosts" } provider "libvirt" { alias = "lewis" uri = "qemu+ssh://root@lewis.hyp/system?known_hosts=/etc/ssh/ssh_known_hosts" } resource "libvirt_pool" "iso" { name = "iso" type = "dir" path = "/kvm/iso" } resource "libvirt_pool" "disk" { name = "disk" type = "dir" path = "/kvm/disk" } resource "libvirt_pool" "init" { name = "init" type = "dir" path = "/kvm/init" } resource "libvirt_pool" "data" { name = "data" type = "dir" path = "/kvm/data" } resource "libvirt_volume" "ubuntu_jammy" { name = "ubuntu-jammy.img" pool = "iso" source = "https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img" } resource "libvirt_volume" "debian_bullseye" { name = "debian-bullseye.iso" pool = "iso" source = "https://cloud.debian.org/images/cloud/bullseye/latest/debian-11-generic-amd64.qcow2" } resource "libvirt_volume" "debian_bookworm" { name = "debian-bookworm.qcow2" pool = "iso" source = "https://cloud.debian.org/images/cloud/bookworm/daily/latest/debian-12-generic-amd64-daily.qcow2" } resource "libvirt_network" "dmzbr" { name = "dmzbr" mode = "bridge" bridge = "dmzbr" dhcp { enabled = false } dns { enabled = false } autostart = true } resource "libvirt_pool" "images_jefke" { name = "images" type = "dir" path = "/kvm/images" provider = libvirt.jefke } resource "libvirt_pool" "disks_jefke" { name = "disks" type = "dir" path = "/kvm/disks" provider = libvirt.jefke } resource "libvirt_pool" "cloudinit_jefke" { name = "cloudinit" type = "dir" path = "/kvm/cloudinit" provider = libvirt.jefke } resource "libvirt_volume" "debian_bookworm_jefke" { name = "debian-bookworm.qcow2" pool = "images" source = "https://cloud.debian.org/images/cloud/bookworm/daily/latest/debian-12-generic-amd64-daily.qcow2" provider = libvirt.jefke depends_on = [ libvirt_pool.images_jefke ] } resource "libvirt_network" "bridgedmz_jefke" { name = "bridgedmz" mode = "bridge" bridge = "bridgedmz" dhcp { enabled = false } dns { enabled = false } autostart = true provider = libvirt.jefke } resource "libvirt_pool" "iso_lewis" { name = "iso" type = "dir" path = "/kvm/iso" provider = libvirt.lewis } resource "libvirt_pool" "disk_lewis" { name = "disk" type = "dir" path = "/kvm/disk" provider = libvirt.lewis } resource "libvirt_pool" "init_lewis" { name = "init" type = "dir" path = "/kvm/init" provider = libvirt.lewis } resource "libvirt_pool" "data_lewis" { name = "data" type = "dir" path = "/kvm/data" provider = libvirt.lewis } resource "libvirt_volume" "debian_bookworm_lewis" { name = "debian-bookworm.qcow2" pool = "iso" source = "https://cloud.debian.org/images/cloud/bookworm/daily/latest/debian-12-generic-amd64-daily.qcow2" provider = libvirt.lewis } resource "libvirt_network" "dmzbr_lewis" { name = "dmzbr" mode = "bridge" bridge = "dmzbr" dhcp { enabled = false } dns { enabled = false } autostart = true provider = libvirt.lewis }