I have used several cloning software.
As mentioned: Clonezilla works.
I like Macrium
Get everything setup just like you want it: Software, admin account, background, software updates, etc...
Then clone it to an external drive.
You can use a usb flash drive to boot into Macrium and point it to the image on the external hdd.
Takes about 25 minutes on ssd drive for about a 60GB image.
I think there is some open source enterprise level software out there that would help you better for patching, updating an image, etc... but not sure on the Linux side of the house.
User sudodus makes a very valid point on making the image unique, meaning specifically wanting to make sure: Hostname, MAC, IP, Hardware drivers, etc... all get detected correctly on multiple machine installs.
If you have identical hardware for all your multiple install you should be able to just use clonezila, macrium or other imaging hardware and after imaging the machine rename the hosts to unique names. I'm not sure how to change MAC address or if Ubuntu will pick that up on a fresh boot up.
The tool sudodus is talking about "Generalizes" the machine for new installs.I've not used it, but I am sure it does what is similar to building and imgage with Microsoft Deployment Toolkit where base image, drivers, packages, software, updates can all be built into an image for mass deployment.
In a nutshell, I'd use a cloning tool for small projects, and the Ubuntu tool for larger projects or long term projects where you need to maintain or update the images. I say this because setting up a tool, image requires a lot more work where-as a cloning tool can be done in a much shorter time.