Grant (Sat, 2 Jul 2011 15:14:38 -0700): > After a frustrating experience with a Linksys WRT54GL, I've decided to > stick with Gentoo routers. This increases the number of Gentoo > systems I'm responsible for and they're nearing double-digits. What > can be done to make the management of multiple Gentoo systems easier? > I think identical hardware in each system would help a lot but I'm not > sure that's practical. I need to put together a bunch of new > workstations and I'm thinking some sort of server/client arrangement > with the only Gentoo install being on the server could be appropriate.
I used to do it the rsync way. Dozens of machines with varying hardware, although not profoundly. All machines had all the software any single machine could need. CFLAGS, kernel config and such were filled with the greatest common divisor of all the boxes. There was one 'reference box' which did all the compiling and from which all the other machines would rsync /, minus selected variables, such as /dev, /etc/mtab, /mnt, /proc, /var/log, etc. Another set of things excluded from rsync were things that do not handle themselves locally, but are different accross computers. I had groups of computers that I wanted to, for example, run different set of boot-up services. That means that /etc/runlevels was excluded from rsync'ing, but what was being rsynced were the dirs /etc/runlevels-group{1,2,3,...} and every machine had a local symlink /etc/runlevels -> one of the runlevels-groupX. Administrative tasks are still limited to working with the single reference box and its single filesystem (plus a few more runlevels-group's and similar exceptions). That way you can have specialized runlevel layouts, specialized fstabs and other configs, etc. Even specialized kernels for every group of machines, in theory. There was also a script being distributed that was called by local crons and allowed for batch rebooting at midnight, or whatever you may need to run locally. You may want to check out lsyncd for keeping dirs in sync in a smart way on-the-fly, but rsyncing from a cronjob at a safe moment may be the recommended option, depending on your environment. By 'safe' I mean when there are no users logged in, for example. The most tricky part was fine-tuning the set of stuff to exclude from rsyncing. But if sure can be done in reasonable environments. HTH, -rz