DaZZa wrote:
OK guru's. :-)

I'm in a situation where I need to duplicate on a mass basis - to the
order or 3000-5000 units - a Linux setup off a headless box.

All the destination boxes will be identical in specification, and the
same as the original. At this point (trial - only 15 to do), I've made
an image of the disk using DD to a USB attached drive - which works,
and gets the new boxes working, but takes 3+ hours to dump the image
back to the new boxes.

3+ hours over 5000 machines is not really acceptable. :-)

Is there a better way to do this? Something which will make a smaller
image and dump back quicker - most of the disk is empty, there's only
about 15 gig of actual data/setup on a 160 gig drive - and still
maintain the partition setup/bootability like using DD does?

Willing to listen to anyone who has a cluestick and is willing to apply it.

We use PXE to boot RedHat's kickstart. That installs the OS. It then runs
a script. We have a RPM file which contains as dependencies the names of
all of the packages we want installed and the second-last step of the
kickstart is a "yum install ..." of that RPM (and all of its dependencies,
which is the point). The last step is to run cfengine to update and maintain
the configurations. Total takes about 20m from power-on to running across
a 1Gbps network.

You're not clear what these boxes are and what they are for.  If they
are for general PC use, then I'd do exactly as we have done. Because
then when fielded the machines will be easy to maintain (if you want
to add a package, then you add it to the meta-RPM, and the overnight yum
update will pull it in; similarly if you want a widespread change of
config cfengine can do that fine). I'd probably substitute puppet for
cfengine, for no other reason than its newer.

Have a look at past lca miniconfs and SAGE-AU conferences. Running
up thousands of machines across the university break is a popular
uni sysadmin topic.  As is the subsequent administration of those
machines.

If not, then you've got some alternatives:
 - put the shipping config into RPMs as well, and drive the
   whole thing from kickstart.
 - format the disk, then drop the 15GB of data on top
   (like this: the dev machine create a 15GB partition,
    create the filesystem, save it using dd.  On the target,
    dd the file into the disk. Use growfs to expand the
    fileysystem to the end of the 150GB partition.) Now
    you've copied only 15GB to get your 150GB filesystem.

Either way, I'd drive the build from packages. That is one of
the big lessons of the OpenWrt project -- packages have benefits
for embedded software too (configuration control, etc).

--
 Glen Turner
--
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html

Reply via email to