Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Feb 2001 07:55:04 -0800
From:      Julian Elischer <julian@elischer.org>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        Terry Lambert <tlambert@primenet.com>, arch@freebsd.org, archie@freebsd.org
Subject:   Re: Configuration management
Message-ID:  <3A97D958.6AFC713@elischer.org>
References:  <3A969CD0.DE9E94E1@softweyr.com> <200102232342.QAA01378@usr05.primenet.com> <20010224142406.A23979@roaming.cacheboy.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Adrian Chadd wrote:
> 
> On Fri, Feb 23, 2001, Terry Lambert wrote:
> 
> > Even if we stick with "flat text files", and we continue to
> > edit them by hand, instead of using a method with subschema
> > inforcement which makes non-sensical configurations impossible
> > (per Jordan's XML example), the idea that it should be _possible_
> > to easily and efficiently machine parse and write these files
> > using a single API, which can be proxied over a network through
> > a single data channel, is a valid one.
> 
> Wow. I'm agreeing with Terry here.


We worked on this for the Interjet at whistle so Terry has the advantage 
of having seen prototypes in action and taken part in discussions on it 
over a long time.

Basically a namespace that looks at first glance similar to ASN/SNMP
but implemented differently.
Ascii storage came into it. A configuration daemon answered all 
requests for configuration information, and it kept it's state in RAM.
It loaded that state at bootup, from an ascii flat file, and 
saved new versions of that file after transactios were made on 
the configuration database. We used Soft updates and the atomic 
nature of rename() along with fsync() to ensure that the database was either
before or after a transaction but always consistent. 

There was a lot more to it, of course, but the concept worked well in practice
though we never completely moved all configuration over to it.

We generated config files for 3rd party software 
'on the fly' from the general configuration database,
when we wanted to start such a service. Services had templates
into which the extracted data from the database was written.
Data had rules associated, and there was the capability to associate
data in one part of the tree with data in another for consistancy 
checking and such.

Since there was an 'on the line' spec for how this data looked
we could write many different 'back-ends' and 'frontends'.



> 
> I once worked for a large ISP. They had lots and lots of boxes, and
> they were able to do stuff like install a custom (in-house modified)
> installation of Redhat (or FreeBSD if they really wanted to) which,
> when placed on the network, automagically picked up its "role" and
> configured itself. It then could continue this "role" with periodic
> configuration updates.
> 
> How they did it was evil. They had an SQL database(s) with the
> entire network configuration which they then wrote scripts which
> would query the database with the machine hostname, pull down
> a configuration/to-do-list (eg create account "foo", delete account
> "blah", etc..) and then apply these changes locally.
> 
> Each application required a seperate set of scripts to maintain.
> I don't think they had a cute way of updating the RPMs on the machines
> besides manually doing it, but I'm sure they've solved that one by
> now.
> 
> The point is, in order to go from stand-alone UNIX machines to
> lots-o-machines and have them manageable and flexible required a hell
> of _a lot_ of work.
> 
> Just a case study for y'all,
> 
> Adrian
> 
> --
> Adrian Chadd                    "Programming is like sex:
> <adrian@freebsd.org>               One mistake and you have to support for
>                                     a lifetime." -- rec.humor.funny
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-arch" in the body of the message

-- 
      __--_|\  Julian Elischer
     /       \ julian@elischer.org
    (   OZ    ) World tour 2000-2001
---> X_.---._/  
            v

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3A97D958.6AFC713>