Skip to main content

The template

The template is one VM (ID 9999) prepared once: a current Ubuntu cloud image, the QEMU guest agent, the logging agent, sensible defaults — and then turned into a Proxmox template so it can only be cloned, not run directly.

A few things are deliberately baked into the template so every clone inherits them:

  • The logging agent (Promtail) — so every VM ships its logs from the moment it exists.
  • Boot-on-start and a protection flag — VMs come up when the host boots, and can't be accidentally destroyed.
  • Cloud-init enabled — the mechanism that lets one image become many different machines.

Everything machine-specific — hostname, network address, credentials — is intentionally not in the template. That's the job of cloud-init at first boot.

Why we use this: put the common things in the image and the unique things in per-VM config. A template that's too specific can't be reused; a template that's too bare makes every clone a chore. The line is: bake what's identical everywhere, inject what differs.