SystemImager is basically a smart wrapper script around rsync. It allows you to make a image of a working machine (called the golden client) and replicate it to other machines. The current docs are for a RedhatLinux setup however there are DebianLinux packages which should work in a similar way.
Notes
It requires perl-XML-Simple and perl-AppConfig.
- It understands most Linux bootloaders, partitioners and DHCP setups.
- It probably won't work if you have machines with different disk configurations.
- You need to setup a systemimager server. This will contain the image of your 'golden' client. You need enough diskspace on the server to copy everything from the golden client except swap.
It supports PxeBoot.
Golden Client Install
This is the box which you want to clone. You MUST get this up before you run getimage on it.
# cd /path/to/systemimager/rpms/ # rpm -Uvh --force * # cp /vol/weta/tech/systems/systemimager/updateclient.local.exclude.with.swap /etc/systemimager/updateclient.local.exclude # prepareclient --server <image server hostname>
Image Server Install
The image server is the box that serves the image to the boxes which are being cloned.
# cd /path/to/systemimager/rpms/ /vol/dist/boot/systemimager/rwall/server # rpm -ivh * # chkconfig systemimager on # /etc/init.d/systemimager start # getimage --golden-client <server_to_be_cloned> --image <image_name> -exclude /var/swap --ip-assignment replicant -q
Clone Client Install
This is the client you want to make the same as your golden client.
# cd /path/to/systemimager/rpms/ # rpm -Uvh --force * # updateclient --server <image_server> -image <image_name> -reboot
Adding a New Kernel Module
This about using SystemImager in a DebianLinux environment so it's a bit different then the above notes. -- AdamShand
# mkdir ~/src/systemimager # cd ~/src/systemimager # apt-get source systemimager # ~ 45MB # cd systemimager-3.0.1 # tar -xjf systemimager-3.0.1.tar.bz2 # cd systemimager-3.0.1 # make patched_kernel-stamp
There is now a systemimager kernel source tree in src/linux-2.4.20
Download the e1000 source from Intel.
# mkdir ~/src/e1000 # cd ~/src/e1000 # tar -xzf e1000.tar.gz # cd e1000/src
Edit Makefile:
Set KSP = ~/src/systemimager/systemimager-3.0.1/systemimager-3.0.1/src/linux-2.4.20
# make # cp e1000.o ~/src/systemimager/systemimager-3.0.1/systemimager-3.0.1/initrd_source/my_modules # cd ~/src/systemimager/systemimager-3.0.1/systemimager-3.0.1/initrd_source/my_modules
Edit INSMOD_COMMAND by adding: Add nsmod ./e1000.o'
# cd ~/src/systemimager/systemimager-3.0.1
Edit FLAVOR and change it to something else (like e1000) for testing.
# make binaries
Go get lunch... this takes a _long_ time.
# sudo make install_binaries
This puts the binaries into /usr/share/systemimager/boot/i386/e1000
Now copy kernel, config, and initrd.img from e1000 to the master "standard" image, and to the master /tftpboot.
Source: http://lists.debian.org/debian-user/2004/03/msg17645.html