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. -- Les Mikesell lesmikesell at gmail.com