Is there a modern equivalent of python-vm-builder?
You can use an official cloud image directly, and then create a small ISO image using cloud-localds
(from the cloud-utils
package) to use as a "nocloud" data source to cloud-init.
Then you can use cloud-init userdata (example) as a single mechanism to add packages and to run your own first run scripts across cloud providers that provide official Ubuntu Cloud images as well as on your local VMs.
If you run cloud-localds
with no parameters, it will display example usage to configure and run a VM using kvm directly.
To run the VM some other way, just supply a cloud image (eg. downloaded from https://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img for 12.04) as the first disk, and present the ISO image output from cloud-localds
as a CD-ROM.
More information is in Scott Moser's blog post.
I've never packaged an ISO, so I can't comment from my own experience, but it appears that the answer to your question is Cobbler (http://cobbler.github.com).
From Ubuntu Community Documentation:
"Ubuntu uses cobbler as the preferred provisioning server for Ubuntu machines."
- https://help.ubuntu.com/community/Cobbler