This post is very old and likely contains information that is no longer accurate and links which no longer work. Proceed with caution.
Occasionally I need to to the same task, or similar tasks, on a group of machines all at once. I don’t have the luxury of a fully automated environment like Puppet setup, so a great tool I’ve been using is called ClusterSSH
cssh) opens up a batch of xterm windows to a group of hosts
you specify, and gives you a master control window with a command prompt. You
can select and type into the host windows individually, but the real fun is with
the command line in cssh’s main window: Any key you press while in the command
line there is sent to every host window.
So whether you need to do a common task, like update the ports tree on FreeBSD,
check drive space, etc, it can really speed things up. This weekend I’ve been
using it to switch a batch of machines over from cvsup to subversion for
/usr/src on FreeBSD, and it’s worked great. In the past I’ve
used it for things like updating ports, making sure a script worked when run
identically on every machine, and for making sure that things like sudo were
installed and functional across a set of systems. I’ve also used it to login to
a group of pfSense machines to see if they could all ping and reach a tcp port
on a certain remote host.
It’s worth checking out if you have any similar needs. If you’re on FreeBSD it’s
/usr/ports/security/clusterssh or for other operating systems you can grab
it from http://sourceforge.net/projects/clusterssh/