2012 0008 0011
In addition to being a researcher and backend web developer, I’ve also
worn the system administrator hat for a number of years. While the
NIS, and their
ilk can work quite well for managing medium-to-large networks, I’ve
more often been tasked with managing small-scale (< 20 machines)
heterogeneous Linux networks, where deploying
LDAP with full
Kerberos authentication would be overkill. Typical requirements
I’ve encountered in small lab settings are simple user account and
home folder sharing, and (relatively) similar package installations.
With this in mind, I did what probably every sysadmin in the same situation would do: scrape together a simple set of scripts to handle basic file synchronization for me. Specifically, I noticed two prevalent requirements among config files being synced:
machines and/or distros have a common header or footer that must be included (e.g., a list of system users in
specific machines (e.g., servers) shouldn’t have some files synced with the rest of the machines (e.g., file shares might be different on a server).
Poor Man's LDAP was born.
While nothing more than a collection of scripts–no different than what many other sysadmins have implemented, in all likelihood–they will hopefully be of use for those who, like me, are graduate students or otherwise non-full-time sysadmins that don’t have time to do things the “right” way.
pmldap on my research lab’s network, where we
(currently) have 5 Fedora machines (various versions between 10 and
16) and 5 Debian machines (all on stable). Since my recent
pmldap now supports groups, which are useful for running
yum commands only on the Fedora machines and
apt commands on only
the Debian boxes. Files being synchronized include:
Also in the repo are a few convenience tools that I’ve found useful:
authorize-machinebootstraps a machine by setting up ssh keys
setupbootstraps config files from a remote machine so they can be merged with the desired additions
cmdruns an arbitrary command on all machines (or a particular group of machines)
useraddis a feature-incomplete reimplementation of the native
useraddcommand that works on local
groupfiles to add new users that can later be synchronized across the network
Since I hadn’t stumbled across something of this scope to fit the
small-scale-network use case, I’m hopeful that
pmldap will be of use
to anyone in a similar situation.
You’ll find it on gitub here.