Luke Kanies | 14 Sep 23:51
Favicon
Gravatar

Re: Configuration management lite

Tom Cavin wrote:
> Hi All,
> 
> I'm looking for a bit of advice.  I have a few (about 10) hosts that serve
> as build servers.  They all started life using RedHat Linux kickstart
> installs, but they've started to diverge and I'd like to reverse this trend
> and keep them controlled.  My impressions of isconf, cfengine and puppet
> are that they would be overkill for my needs and a bit more work than I
> want (although I could be convinced otherwise) and it seems radmind might
> be just whan I need.  My only concern with radmind is whether it can play
> nice with rpm.  (And if it can, it would be nice to know how.  :-)
 >
> The reason I'd like it to play nice with rpm is I'd like to be able to work
> on some random box, get it to do the right thing, and then isolate and
> propagate the changes to the other boxes.  Ideally rpm could then have a
> locally correct database so "rpm -qa" will be an accurate list of what's on
> a box even if the bits on the disk were not installed by rpm on that
> system.  (I haven't looked into the guts of rpm to know whether this is
> feasible.)

I am pretty sure that radmind works with files, not packages, so it 
would be able to copy those individual files over, but it would not, 
say, install RPMs on one server because it sees them on another server.

Neither Puppet nor cfengine can do this, either, unfortunately.  While 
Puppet has querying support, so one could write a tool that was akin to 
radmind but that used Puppet's modeling, this has not been my focus.

The only realistic way to do something like this with Puppet would be to 
do the initial work in Puppet, either via a central server or with a 
stand-alone Puppet script, and then copy the same work to other systems. 
    This is actually much easier than you might imagine, though; I've 
done plenty of simple ad-hoc work with Puppet.  For instance, you could 
create a Puppet manifest that installed the rpms you wanted:

     package { [pkg1, pkg2, pkg3]: ensure => installed }

You run the script with 'sudo puppet <manifest>'.

Once you got the package list correct, just copy it to your other hosts 
and run it there.

I expect it'd actually be a touch easier to use a centralized server, 
but if you don't want to start there, you don't need to.  Once you have 
a few of these manifests written, you can start to combine them into a 
single, organized configuration.  You still don't have to use the 
central server, though; if you're using NFS or something, you can just 
as easily run Puppet against that single configuration locally without a 
server.

--

-- 
Secondly, Latin is a so-called "dead language."  It takes a lot to
kill a language.  There are countries the size of my kitchen that have
their own healthy languages.  Clearly, if Latin was useful in its
normal form, it would be alive today.  Therefore the language must be
defective.  I don't see much risk in changing it.  What's the worst
thing that could happen -- Latin will become unpopular?
                 -- from the DNRC Newsletter, by Scott Adams
---------------------------------------------------------------------
Luke Kanies | http://reductivelabs.com | http://madstop.com

_______________________________________________
Config-mgmt mailing list
Config-mgmt@...
http://lopsa.org/cgi-bin/mailman/listinfo/config-mgmt


Gmane