I would like to create a backup of one of my Ubuntu systems. Put that backup file/image on one of my web servers and use iPXE or gPXE to restore it onto multiple servers. I'm assuming that I need a specialized application or distro that can be loaded via PXE.
Any recommendations?
In general, there is not much to booting a Linux kernel off PXE - the PXELinux / Syslinux web page has a number of examples. You even can boot up an entire distro like SysRescueCD and do your restore from there.
But since you have a specialized requirement for imaging and restoration, you might want to look at Clonezilla - it is an OSS Linux distro doing exactly that. And it already is prepared to be booted via PXE.
You can do this with something like Clonezilla (as mentioned already), but think about if this is really something you want to be doing. What you're describing can be done with images, but it works a lot better if you start using some type of configuration management (or even some kickstart/preseed scripts).
The problem with the image is that it will generally only work on certain hardware combinations. Have a new server with a smaller hard drive, or a significantly different configuration? You may have to recreate the entire image from scratch, whereas with Puppet there would be no extra effort.
We used to use images for everything like you're describing. Keeping track of the various images (and keeping them up to date) was becoming a giant pain. We've switched to various other methods (manual scripts, configuration management, kickstart scripts), and everything has been working a lot better.