Sprinkle is a software provisioning tool you can use to build remote servers with, after the base operating system has been installed.
I am going to have to try this out! It looks really promising.
I have used a number of Cap scripts to do something similar. But, this solution looks more elegant.