Curtin has a test suite named vmtest
. It has loads of configs for
installation that put curtin through a battery. As of this writing
it runs 192 installations on amd64 covering all supported ubuntu releases.
It runs nightly under jenkins. See example results in the
curtin-vmtest-devel-amd64 job.
If you're interested just a general use of curtin without starting a VM, see another article 'Curtin Development on uvt-kvm'.
Two standalone tools work together to help out vmtest
, and you can use them
to run installations yourself.
-
xkvm: This is just a friendly-ish wrapper around qemu-system-x86_64. Its primary usefulness is:
-
--disk=<disk.img>
: This adds virtio-blk devices and drive args. -
--netdev=user
or--netdev=bridgename
. This supports adding a tun/tap device to the bridge without you providing 'downscript' arguments to qemu. -
--dry-run
: if you just want to see the longer qemu command line.
-
-
launch: This boots a Ubuntu environment with disks attached and runs curtin from cloud-init user-data inside.
See ./run-launch.sh
to for a working example on how to do an install.
In the 'launch' environment you can log in with 'ubuntu:passw0rd'.
If your curtin install fails, curtin will be in /curtin and you can
re-run it from there.