I manage a cluster used for computational neuroscience at a University. The number of machines is starting to get to a point where it is difficult to maintain software synchronization across machines. Any tips?
I already use LDAP to distribute user and group information and NFS to share /home directories. I have considered sharing /usr via NFS as well, but since configurations are stored in /etc, I'd have to share /etc too. But that won't work, since machine-specific information like an IP address and name is stored in /etc. (Whatever happened to the very intelligent policy of configuring programs in /bin in /etc, configuring programs in /usr/bin in /usr/etc, and configuring programs in /usr/local/bin in /usr/local/etc?!) I have also thought of trying to make the workstations diskless and using DHCP -- but then how can I give each machine a fixed name and IP address? I have also though to trying to sync everything up via rsync -- but then every time I add a software package I would have to edit the list of stuff to be rsync'ed. Help!