[CentOS] Configuration Management Redux (was: best parallel / cluster SSH)
lesmikesell at gmail.com
Thu Feb 4 20:21:55 UTC 2010
On 2/4/2010 1:28 PM, Alan McKay wrote:
> On Thu, Feb 4, 2010 at 2:03 PM, Les Mikesell<lesmikesell at gmail.com> wrote:
>> But, if someone ever gets cross-platform config management right or at
>> least close enough that it is worth learning yet another description
>> language I'd be very interested. Cfengine v3 might be getting there but
>> the windows version seems to be only available in the commercial build.
> OK, this is the perfect sequay for me :-)
> Assuming you only want Linux, and at that CentOS Linux - which are
> both the case for me - what Config Management system would you use?
> What is out there?
> A few months ago I sort of had a similar thread going and got the following :
> Slackmaster - looks like this is from google
> chef - have not looked it up yet
> puppet - got a test bed going and just bought the book because have
> not found much on line in terms of complex configs and how to actually
> use it to manage your environments
> bcfg2 - have not looked for it yet
> CF Engine - am vaguely familiar with it.
Well so far I haven't adopted any, mostly because learning their oddball
languages seems like extra work with no return over using simple loops
to automate what you have to know anyway. That is, you have to
completely understand what they do and how they do it to supply the low
level scripts for the specific things you want to happen, and once you
have that part there's next to nothing involved in wrapping it with ssh
from a central point yourself using the shell language which is well
designed for that sort of thing and you already have to know it.
Also, you almost certainly will want to version-control things, so
unless the tool you pick starts with your favorite mechanism underneath
you'll have more complications than just tossing svn commit/update
commands in appropriate places yourself. In my opinion, the version
control is the important part while copying things around and executing
a command here and there are fairly trivial. I'd like to find something
that starts with the premise that for each group of hosts you have a
'master' set of configs and every actual instance is a
version-controlled branch where you could easily compare any host:host
in the set as well as host:different time (stuff any version control
tool does). But so far I haven't seen anything that understands that
the configurations are just extensions of the programming and need to be
handled the same way as the underlying source code for the same reasons.
For your 4-host example, I'd be tempted to just open 4 terminal windows,
ssh to each, and after running a command successfully in one, recall the
command line with the up arrow, highlight it with the mouse and
middle-click in each of the other windows. You get verification that
the command is correct before killing all of the servers, then nearly
parallel execution on the others in much less time than it would take
you to figure out how to tell some framework to do it for you. And if
you are as lazy as I am, you can run the control desktop in freenx, and
leave the ssh session windows open, then grab the whole desktop remotely
whenever you need it again.
If I were willing to be restricted to a few unix-like OS varieties, I'd
look at puppet. Cfengine before v3 was just too weird, but it seems to
have a new philosophy now. I'm still reading the blurbs, though.
lesmikesell at gmail.com
More information about the CentOS