kvm-test is a package for automating guest installation. It's still very early in development but it seems to work for a wide variety of guests. kvm-test contains two programs. The first records a KVM session to a log creating a harness. The second program will replay a saved harness.
Getting
kvm-test is hosted at http://hg.codemonkey.ws/kvm-test. It requires currently requires at least version 0.3.2 of gtk-vnc.
Creating a harness
You can create a harness by running kvm-test-record passing it the arguments you would normally pass QEMU. Information will be stored in the current working directory so you should create a directory for the harness and run from there. At the moment, the mouse is not supported in kvm-test-replay so you should avoid using it. Fortunately, installers support navigating through key sequences.
Barriers
Barriers are an important concept in kvm-test. A barrier is essentially a screenshot that is matched with a fuzzy algorithm. Barriers serve multiple purposes. A barrier allows the installation progress to be confirmed so that you know things are moving along as they should. kvm-test-replay will attempt to match a barrier for a rather long time too so it also helps combat timing indeterminism.
Choosing good barriers
A good time to insert a barrier would be when the screen is idle; user action is required to move forward.