The design goal for SystemImager was to create a tool that was both easy and fast to use, allowing system administrators to perform incremental upgrades that minimized system disruptions and provided software independent of any packaging system. The specific requirements follow:
Images should be pulled from a working system.
Unattended installs are a must.
The unattended install system has to be able to repartition the destination drive(s).
System administrators who don't completely understand the tool should be able to use it.
The install should be easy and quick so that it can be useful immediately without a lot of site-specific customization.
Images should be stored as normal files to allow for incremental upgrades, as opposed to "dd" style block level images of physical disks.
The SystemImager software should be independent of any and all packaging systems (such as RPM) in order to easily accommodate different distributions.
SystemImager should be able to store multiple images for different types of systems and for revision control.
A mechanism should be available to let unattended install clients know which image to install.
An installed client should be able to update itself to a new or modified image.
SystemImager should have a command line interface that can easily be wrapped with a GUI.